WarchがGCCに渡している "-arch x86_64 -arch i386"フラグを抑制する必要があります。OSXでWafを使用してOpenGL/SDLアプリケーションをコンパイルするときに '-arch'、 'x86_64'フラグを抑制するにはどうすればよいですか?
私はSDL/Openglアプリケーションを構築しています。私は32ビットSDLランタイムにリンクした場合、私はエラー
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
を取得し、私は64ビットSDLランタイムにリンクする場合は、私はエラー「アーキテクチャx86_64のための未定義のシンボル」を取得
コンパイラが明らかにフラグ
を使用しています-arch x86_64 -arch i386
これは、OSX上でGCCが両方のアーキテクチャ用にコンパイルを試みることを理解します。 64ビット用にコンパイルするか、32ビット用にコンパイルするかのどちらかです。 1つのアーキテクチャのフラグを抑制するにはどうすればよいですか?
-m32は動作しません。それはまだそこに64ビットのフラグを追加します。私はsedコマンドを書いて64ビットのフラグを32ビットのフラグに変更しなければならず、64ビットのビルドを手に入れました。 強制的に64ビットのみにすることはできますか? – HaltingState
私はあなたを理解しているか分からない。 arch_flagsをx86_64またはi386に設定すると、プロセッサファミリを意味します。 m64またはm32フラグを設定すると、生成される命令が意味されます。 x86_64ファミリは、64ビットと32ビットの両方の命令を処理できます。あなたは、64ビットフラグ(正確に?)を32ビットに変更し、64ビットのビルドを得たと言っていますか? 64ビットのみが必要な場合は、i386フラグを使用しないでください。 – Jerry
問題はwafがユーザーではなくこれらのフラグを追加していることです。ユーザーは-arch x86_64 – Mark