Linux 14.04 x64でg ++ 4.8.4を使用しています。コンパイルとリンクの両方で-O3と-fltoフラグを付けてプロジェクトをコンパイルしています。つまり、MakefileのCFLAGSとLDFLAGSの両方にこれらのオプションがあります。GCC:リンカーで-O3最適化フラグを使用
浮動小数点数/倍精度浮動小数点演算を含む計算では、最適化されたバイナリが異なる動作をする(誤って)ことがわかりました。 LDFLAGSだけから-O3を削除することは、この問題を解決するようです。
コンパイラとリンカの両方に同じ最適化フラグセットを指定するのが一般的に安全であることを覚えています。私の理解が間違っていますか?前もって感謝します。
「Linux 14.04」はありません。あなたはUbuntu 14.04を意味するのでしょうか? – SurvivalMachine
私のお詫び - –
の前に誤って "Ubuntu"をスキップしました。あなたがLTOで何かをしていて、間違った最適化がO3のみに適用された場合、最後のステップからO3を削除するとO0か何かにコード全体が再コンパイルされます。誤ったオプションを引き起こさない。 –