CXXFLAGSに書くコンパイルオプションの順番に関する方針
- ソースコードの振る舞いを変えてしまい、オプションの有無によってプログラムの計算結果を変えてしまうオプション。言語仕様やマクロなど (例:
-std=c++11 -stdlib=libc++ -DNDEBUG -D_GLIBCXX_DEBUG
) - コンパイル時の振る舞いを変えてしまうが、生成バイナリには影響を及ぼさないオプション。警告など (例:
-Wall -Wextra -Wshadow -Wfloat-equal
) - 生成バイナリを変えてしまうが、(ちゃんとしたプログラムを書いてさえいれば)プログラムの計算結果は変わらないオプション。最適化など (例:
-O2 -g -march=native -static -ftrapv -flto
)