Ho bisogno di sopprimere i flag "-arch x86_64 -arch i386" Waf passa a GCC.Come si eliminano i flag "-arch", "x86_64" durante la compilazione di un'applicazione OpenGL/SDL con Waf su OSX?
Sto costruendo un'applicazione SDL/Opengl. Se collego contro 32 bit runtime SDL ottengo l'errore
Undefined symbols for architecture i386:
"_SDL_Quit", referenced from:
__del_video in SDL_functions.c.2.o
__init_video in SDL_functions.c.2.o
Se collego contro runtime SDL 64 bit, ottengo l'errore "simboli non definiti per l'architettura x86_64"
Il compilatore è apparentemente usando bandiere
-arch x86_64 -arch i386
Capisco che questo fa sì che GCC su OSX provi a compilare per entrambe le architetture. Voglio compilare per 64 bit o compilare per 32 bit. Come si sopprimono i flag per un'architettura?
-m32 non funziona. Aggiunge ancora il flag a 64 bit. Ho dovuto scrivere un comando sed per cambiare i flag a 64 bit in flag a 32 bit in configurazione e ottengo un build a 64 bit. Posso forzarlo a fare solo 64 bit? – HaltingState
Non sono sicuro di averti capito. L'impostazione del flag di arco su x86_64 o i386 indica la famiglia di processori. L'impostazione del flag m64 o m32 indica le istruzioni generate. La famiglia x86_64 può gestire sia le istruzioni a 64 che a 32 bit. Stai dicendo che hai cambiato il flag a 64 bit (quale esattamente?) A 32 bit e hai ottenuto un build a 64 bit? Se si desidera solo 64 bit, non è possibile utilizzare il flag i386. – Jerry
Il problema è che waf sta aggiungendo questi flag non all'utente - e l'utente vuole solo -arch x86_64 – Mark