x64マシンでx86カーネルを実行しています。私はi586プロセッサのライブラリをコンパイルしたいと思います。コンパイル時には、ライブラリによってはi686の最適化が使用されるため、メイクファイルに明示的に宣言していても、すべてのライブラリに対して-mtunes=i586
、-march=i586
、および-O3
フラグを設定する必要があります。gccとg ++の最適化フラグを永久に設定する
はどういうわけか、私は永久にコンパイラフラグを設定したい...
x64マシンでx86カーネルを実行しています。私はi586プロセッサのライブラリをコンパイルしたいと思います。コンパイル時には、ライブラリによってはi686の最適化が使用されるため、メイクファイルに明示的に宣言していても、すべてのライブラリに対して-mtunes=i586
、-march=i586
、および-O3
フラグを設定する必要があります。gccとg ++の最適化フラグを永久に設定する
はどういうわけか、私は永久にコンパイラフラグを設定したい...
かかわらず、あなたははこれを行うべきかどうかの、ここではそれを行うための最も簡単な方法です:
は、新しいファイルを作成します。以下の内容:
#!/bin/sh
exec /usr/bin/gcc "[email protected]" -O3 -mtunes=i586 -march=i586
変更は/ usr/binに/ gccの実際のコンパイラにそれが右のない場合あなたのシステム。
~/bin/gcc
として保存してください。
ます。chmod + X〜/ binに/ gccのg ++のための別のファイルを作成するために
リピート:
がパスの開始に~/bin
を追加します。
export PATH=~/bin:$PATH
プロジェクトをコンパイルします。あなたの新しいスクリプトがパス上にあるときはいつでも、彼らはmakefileが言うものを上書きします。
希望します。
P.S. 最高の(最も簡単ではない)の方法は、おそらくコンパイラの "specs"ファイルを混乱させることですが、説明するのはずっと難しくなります。
これは、非常に良いこととは思えません。メークファイルが明示的に特定のフラグを指定している場合は、おそらく理由があります。 –
'-O3'を' -O2'に変更しようとするメイクファイルでは、 '-O3'でコードが単純に機能しないので、何をしたいですか? – hvd
@OliCharlesworth:私はrb-110 x86埋め込みボードのopenCVをコンパイルしています。マイクロSDカードにdebianをインストールすると、私は自分のPC上で実行しています。コンパイル時にはバイナリはi686です。私はそれらをi586にして、もちろん最適化する方法を探しています。 –