読者です 読者をやめる 読者になる 読者になる

座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

CMakeのコンパイラ向けオプションを調べてみた

CMakeでgccやg++向けのオプションを指定するために、set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") などと書いていた。 考えてみると、CMake側が用意しているビルド構成があるので、コンパイラに対してどういうオプションが指定されているか調べてみた。

MinGW/MSYS Makefiles、UNIX Makefiles、Visual Studio 2010向けのプロジェクトを生成したときの、 コンパイラ向けオプションの一覧です。

変数 MSYS/UNIX Makefiles Visual Studio 10 (2010)
CMAKE_C_FLAGS (NONE) /DWIN32 /D_WINDOWS /W3
CMAKE_C_FLAGS_DEBUG -g /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
CMAKE_C_FLAGS_RELEASE -O3 -DNDEBUG /MD /O2 /Ob2 /D NDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG /MD /Zi /O2 /Ob1 /D NDEBUG
CMAKE_C_FLAGS_MINSIZEREL -Os -DNDEBUG /MD /O1 /Ob1 /D NDEBUG
CMAKE_CXX_FLAGS /DWIN32 /D_WINDOWS /W3 /GR /EHsc
CMAKE_CXX_FLAGS_DEBUG -g /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
CMAKE_CXX_FLAGS_RELEASE -O3 -DNDEBUG /MD /O2 /Ob2 /D NDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO -O2 -g -DNDEBUG /MD /Zi /O2 /Ob1 /D NDEBUG
CMAKE_CXX_FLAGS_MINSIZEREL -Os -DNDEBUG /MD /O1 /Ob1 /D NDEBUG

MSYS/UNIXのオプションはなんとなくわかるが、MSVC向けのオプションはぱっと見てもよくわからないな。

広告を非表示にする