1. ホーム
  2. c++

[解決済み] CMakeにおけるデバッグとリリースの比較

2022-03-19 17:21:29

質問

GCCでコンパイルしたプロジェクトで

  • ターゲットタイプ(debug/release)ごとに CMake を実行するにはどうすればよいですか?
  • CMake を使用して C/C++ のデバッグとリリースのフラグを指定するにはどうすればよいですか?
  • メイン実行ファイルをコンパイルする際に g++ と、1つのネストされたライブラリに gcc ?

解決方法は?

CMake では、一般的に ソースからビルドする。 . を作成します。 CMakeLists.txt をプロジェクトのルートに置きます。次に、プロジェクトのルートから

mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make

そして Debug (再びプロジェクトのルートから)。

mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

Release / Debug は、あなたのコンパイラに適したフラグを追加します。また RelWithDebInfoMinSizeRel のビルド構成です。


フラグの修正・追加は ツールチェーンファイル を追加することができます。 CMAKE_<LANG>_FLAGS_<CONFIG>_INIT という変数があります。

set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-Wall")

参照 cmake_build_type を参照してください。


3番目の質問については、何を質問されているのか正確にはわかりません。CMakeは、異なるソースファイルに対して適切なコンパイラを自動的に検出し、使用するはずです。