2012-01-07 33 views
0

x64マシンでx86カーネルを実行しています。私はi586プロセッサのライブラリをコンパイルしたいと思います。コンパイル時には、ライブラリによってはi686の最適化が使用されるため、メイクファイルに明示的に宣言していても、すべてのライブラリに対して-mtunes=i586-march=i586、および-O3フラグを設定する必要があります。gccとg ++の最適化フラグを永久に設定する

はどういうわけか、私は永久にコンパイラフラグを設定したい...

+0

これは、非常に良いこととは思えません。メークファイルが明示的に特定のフラグを指定している場合は、おそらく理由があります。 –

+0

'-O3'を' -O2'に変更しようとするメイクファイルでは、 '-O3'でコードが単純に機能しないので、何をしたいですか? – hvd

+0

@OliCharlesworth:私はrb-110 x86埋め込みボードのopenCVをコンパイルしています。マイクロSDカードにdebianをインストールすると、私は自分のPC上で実行しています。コンパイル時にはバイナリはi686です。私はそれらをi586にして、もちろん最適化する方法を探しています。 –

答えて

2

かかわらず、あなたはこれを行うべきかどうかの、ここではそれを行うための最も簡単な方法です:

  1. は、新しいファイルを作成します。以下の内容:

    #!/bin/sh 
    
    exec /usr/bin/gcc "[email protected]" -O3 -mtunes=i586 -march=i586 
    

    変更は/ usr/binに/ gccの実際のコンパイラにそれが右のない場合あなたのシステム。

  2. ~/bin/gccとして保存してください。

    ます。chmod + X〜/ binに/ gccのg ++​​のための別のファイルを作成するために

  3. リピート:

  4. は、新しいスクリプトを実行可能にします。

  5. がパスの開始~/binを追加します。

    export PATH=~/bin:$PATH 
    
  6. プロジェクトをコンパイルします。あなたの新しいスクリプトがパス上にあるときはいつでも、彼らはmakefileが言うものを上書きします。

希望します。

P.S. 最高の(最も簡単ではない)の方法は、おそらくコンパイラの "specs"ファイルを混乱させることですが、説明するのはずっと難しくなります。

関連する問題