2012-01-24 6 views
2

ビルドフラッグに "最適速度"(-O3を指定)または "最適サイズ"(-Oを指定)を指定しない限り、常に-O2が生成されているようです。 buildflagsに何も指定せず、buildoptionsに "-O0"を渡すと、結果は "-O2 -O0"になります。しかし、期待される結果はちょうど "-O0"になります。premake 3.7では、gccの-O2ではなく-O0をどのように生成するのですか?

"-O0"をカスタムビルドオプションとして渡すと、 "-O2"の生成を防ぐことができますか?ドキュメントには何も関係がないと書かれています。

答えて

0

おそらく-02をオフにする方法がありますが、それは必要ではありません。 GCCのマニュアルページから

あなたはレベル番号の有無にかかわらず、複数の-Oオプションを使用する場合は、最後に、このような オプションが有効なものです。

+0

ああ、ありがとう、私はその部分を逃したようだ。 – pholz

0

「リリース」ではなく「デバッグ」構成でビルドしてみますか?

+0

ええ、問題は、-O0はリリースビルドでクラッシュする可能性があります.O0はそうではありませんが、クラッシュフリーのリリースビルドを持つことが重要です最適化された。とにかく、premakeはリリースビルドに-O2より低いものは許さないと言っていますか? – pholz

+0

ごめんなさい。 –

+0

@pholz私はこれが古いと知っていますが、ちょっと言いたいことがあります:あなたのプログラムがコンパイラオプション '-O2'でクラッシュし、' -O0'でクラッシュしていない場合、コードに問題がある可能性がありますこれはちょうどこの1つのケースで動作するようになります。別のプラットフォームまたはコンピュータで、または異なるデータを使用している場合は、異なる可能性があります。 (私はこれを難しい方法で学ばなければならなかった) – cassava

関連する問題