|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Quote:
non c'è alcun motivo di complicare le cose |
||
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Beh, in effetti è un po' brutto. Ci sono stati per anni problemi di linking anche tra eseguibili con librerie compilate con versioni diverse di G++, figuriamoci tra compilatori diversi. Anche con ICC è la stessa cosa . Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#23 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
problemi tipo?
|
|
|
|
|
|
#24 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7260
|
Quote:
al contrario, la prima cosa che distingue un buon programmatore da un programmatore mediocre è la scelta degli strumenti più idonei per raggiungere i propri obiettivi
Ultima modifica di k0nt3 : 29-01-2008 alle 18:47. |
|
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Problemi di linking o di eseguibili che non partivano
![]() PS= Comunque leggo ora che il thread parla di C , non so perchè ma ero convinto che si parlasse di C++. Questi problemi c'erano soprattutto col C++.
__________________
GPU Compiler Engineer |
|
|
|
|
|
#26 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Quote:
ho capito perfettamente le tue frasi fatte, quello che intendevo dire è che nella frase precedente sembrava che lui non era in grado di utilizzare tutto il surplus di cui parlavi, che sarebbe rimasto in eterno a scrivere programmi in C & librerie standard del C, di quelli che girano in console e ti calcolano la serie di Fibonacci. Ultima modifica di 71104 : 29-01-2008 alle 19:27. |
||
|
|
|
|
|
#27 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() Quote:
|
||
|
|
|
|
|
#28 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
C++ ABI Mismatch . Più di così non posso dirti
Quote:
Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#29 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Solo che non mi ha pagato i diritti e adesso gli mando a casa la SIAE a pignorargli tutto quello che ha. ![]() Comunque, dato il titolo del thread, l'ambiente migliore che può usare è Visual Studio.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#30 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Visto che il gcc per pe64 ancora non c'è, a causa della differente calling convention scelta da Microsoft (o dal gcc, scegli tu), non è possibile utilizzare ffmpeg a 64 bit su Windows ad esempio.
Se il VC fosse stato C99, sarebbe stato possibile... Quote:
Un paio di esempi chiariscono; il primo è veramente banale: Codice:
int a=3, b;
asm("" : "=g"(b) : "0"(a) );
In questo esempio imposto tutto buf con il carattere 'A'. Qui i constraint mi sono utili per preparare i registri da utilizzare: sizeof(buf) in ecx, 'A' in eax, buf (puntatore) in edx: Codice:
char buf[64];
asm(
"rep stosb"
: : "c"(sizeof(buf)), "a"('A'), "D"(buf)
);
La "fatica" quindi non è tanto per lo sviluppatore, ma per aiutare il compilatore!
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 Ultima modifica di ilsensine : 29-01-2008 alle 20:48. |
|
|
|
|
|
|
#31 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7260
|
Quote:
si ma anche lui va incontro a guai legali se non paga i diritti a PGI-bis per il "Giovanni mangia una mela" ![]() comunque ti avrei potuto anche darti ragione se si trattava di C++, ma per quanto riguarda il C non vedo come un compilatore che non implementa nemmeno l'ultima versione dello standard possa essere considerato la scelta ideale
|
|
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Comunque dipende da quello che deve fare.
Visto che vuole programmare in C mi viene da pensare sia per qualche corso universitario o scolastico. Se gli serve solo per passare tale corso e non gli interessa approfondire ulteriormente la programmazione dopo un Visual Studio è eccessivo (E' grosso da scaricare, ci vuole tanto ad installarlo e ad aggiornarlo, occupa parecchio spazio su HD e può essere anche dispersivo o poco intuitivo per uno alle prime armi) . Magari in questo caso un MinGW + Code::blocks è meglio. Se vuole mettersi a programmare su Win32 in maniera seria allora VS è d'obbligo . Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#33 | |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano per lavoro
Messaggi: 12471
|
Quote:
Mi bastano le chiamate di base, non devo fare niente di eccezionale! cmq grazie a tutti mi sono fatto una cultura!!!!!! ciao
__________________
DESKTOP NEW PC ASUS GT302 ARGB + AMD 7600x +Thermalright Peerless Assassin 120+ ASUS STRIX B650E-F + 32gb ddr5 +WD SN850X 2TB + Asus rtx 5070 ti 16gb prime +Corsair RM850X+ WIN 11 + Philips Envia 27M2N8500AM DESKTOP OLD PC CM SCOUT + i7 3770K +Corsair A70+ MSI Z77A -GD55 + 16gb ddr3 +SSD Samsung 860 EVO 1TB + MSI 1660TI Armor +Corsair TX650v2+ WIN 10 64bit+Logitech G11+Steelseries XAI ----- Asus ROG Ally |
|
|
|
|
|
|
#34 | ||||||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
per esempio il fatto di non potersi scambiare oggetti di classi STL (vector, map, string, stack...) con una libreria compilata con un altro runtime? ti dirò, quello non solo è un problema stranoto, ma le cause sono addirittura segno di pessimo design da parte dell'autore della libreria. ad ogni modo la soluzione su Windows è compilare i vari pezzi del programma (programma principale, librerie, DLL, ecc.) linkandole alla versione DLL esterna del runtime di Visual C++; quindi basta dare un'occhiata al manifest file.
Quote:
)Quote:
grazie al cavolo, se il MinGW supportasse il formato PE a 64 bit sarebbe stato possibile... c'è una mancanza di impegno da entrambe le parti, chi dei due ha la colpa? Quote:
so solo che gli operandi sono invertiti (non so neanche cosa succeda nelle istruzioni che prendono tre operandi...) Quote:
e quanti decimi di secondo si guadagnano in fase di compilazione perciò? ![]() Quote:
Quote:
![]() lo stesso concetto vale in user-mode: se una funzione decide che deve lanciare un'eccezione spera solo che non stai programmando col gcc. oppure se non è una funzione potrebbe essere un errore tuo o di una libreria, come l'accesso ad aree di memoria non allocate o la scrittura su aree di memoria a sola lettura; oppure anche solo l'accesso in lettura o scrittura ad aree di memoria con accesso PAGE_EXECUTE su processori con hardware enforced DEP (NX-bit). * devi vedere che hanno dovuto fare in ReactOS ![]() un programmatore italiano del team ha sviluppato una libreria PSEH che gestisce appositamente le eccezioni SEH. Ultima modifica di 71104 : 30-01-2008 alle 00:30. |
||||||
|
|
|
|
|
#35 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
|
|
|
|
|
#36 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
|
#37 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
i blocchi di assembly in mezzo al codice C sono cose che ormai non vengono più scritte nemmeno nei drivers!! (almeno per quanto riguarda Windows) in pratica vengono usati solo da chi programma sistemi operativi e chi vuole usare istruzioni specifiche del processore inaccessibili tramite linguaggio e API. sono una cosa che già di per se' viene usata una volta ogni morte di papa, poi mettici anche che nel 50% dei casi le routines che ne contengono contengono solo quello (e quindi non resta un bel niente da "connettere" col codice C circostante) e nel rimanente 50% sono dei blocchi talmente piccoli che la mancata ottimizzazione loro e delle due istruzioni circostanti a parer mio non è un grave problema. tutti quelli scervellamenti, imho, sono una soluzione eccessiva: una sintassi incomprensibile per un problema inesistente
|
|
|
|
|
|
|
#38 | ||
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Beh, in questo caso è allora indifferente quale scegliere
Quote:
Comunque questo è un problema in cui ero cascato personalmente tempo fa, quando su Gentoo si usava ancora GCC 3.x . In particolare avevo il GCC 3.2 e avevo compilato tutto KDE con quello. A un certo punto esce l'aggiornamento di GCC alla versione 3.3. Tempo dopo escono anche gli aggiornamenti di alcune applicazioni KDE . Dopo la ricompilazione il risultato era il sopraccitato errore. Adesso fortunatamente però con la serie 4 del GCC non succede più (la ABI si è stabilizzata Quote:
![]() Ciao
__________________
GPU Compiler Engineer |
||
|
|
|
|
|
#39 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#40 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:30.





















