15

ビルドタイプ(デバッグ/リリース)ごとに個別のフォルダーを作成し、それぞれでcmakeを実行し、デバッグ/リリース構成用に個別のmakefileを生成する必要があるようです。デバッグ/リリース構成の両方を同時にサポートするcmakeを使用して単一のmakefileを作成することは可能ですか?実際に「make」を実行すると、中間製品と最終製品(dll、exeなど)用に別々のフォルダーが作成されます。

4

2 に答える 2

15

私の知る限り、これは単一のビルドスクリプトセットを使用して実現することはできません。ただし、実行できることは、作業領域の2つのサブディレクトリを持つことです。

build/
build/debug
build/release

次に、次のことを行います。

$ cd build
$
$ cd build/debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ../..
$ make
$
$ cd ../release
$ cmake -DCMAKE_BUILD_TYPE=Release ../..
$ make

必要に応じて、次のbuildようにディレクトリに別のビルドスクリプトを追加できます。

#!/bin/sh
cd debug   && make && cd ..
cd release && make && cd ..
于 2012-04-10T05:21:25.693 に答える
9

これは、コマンドを使用して実行できますADD_CUSTOM_TARGET。たとえば、makefileにデバッグターゲットとリリースターゲットの両方を追加する場合は、CMakeLists.txtファイルに次を追加します。

ADD_CUSTOM_TARGET(debug
  COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
  COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
  COMMENT "Creating the executable in the debug mode.")

ADD_CUSTOM_TARGET(release
  COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
  COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
  COMMENT "Creating the executable in the release mode.")

次に、cmakeで構成した後、実行make debugしてデバッグターゲットを作成し、実行make releaseして同じディレクトリ内のリリースターゲットを作成できます。

于 2018-01-24T00:20:31.237 に答える