0

そこで、いくつかのコードをコンパイルしようとしました (具体的には Bullet Physics のデモ)、SSE と SSE2 が有効になっていないというエラーが表示されました。Code::Blocks でコンパイラ フラグを確認しましたが、SSE/SSE2 はありませんでした。代わりに「その他のオプション」(-msse、-msse2)にフラグを入れようとしましたが、うまくいきませんでした。

それから、「-march = native」を試すように言ったstackoverflowの投稿をここで見ました。それもうまくいきませんでした。

コンパイルに G++ (MinGW) を使用しており、Windows 7 x64 を使用しています。

何か意味があるとすれば、プロジェクトはカスタム makefile を使用しています。

4

1 に答える 1

1

これを機能させるにはmarch、SSE2をサポートするものに設定する必要があります(たとえば、Pentium4またはCore2。x86_64で実行しているため、「ネイティブ」も使用できる場合がありますが、「ネイティブ」を使用したことはありません)および経由で SSE2 を有効にし-msse2ます。

しかし:カスタムメイクファイルを使用するので、メイクファイルでこれを行う か、環境変数を使用する必要があります(環境変数を忘れてください、私が見たところ、ターゲット/最適化オプションを除いて、これらを介してほとんどすべてを制御できるようです)。

Code::Blocks は、プロジェクト ファイルからコンパイルするときにコンパイラ オプションを設定しますが、カスタム メイクファイルを使用するときは設定しません。カスタム makefile を使用すると、自分が何をしているかを理解していること、および makefile が「正しく機能する」ことが前提となります。
別の言い方をすれば、任意のオプションを設定できますが、cutom makefile を使用している限り、それらは何の効果もありません。

于 2013-03-01T12:08:56.120 に答える