16

私の問題は次のとおりです。Visual Studio 2010 を使用して小さなパーサーを開発しています。ビルド構成ツールとして CMake を使用しています。

しかし、デフォルトの実行可能ファイルのビルド動作は不便だと思います。私が欲しいのは、最終的なプログラムを次の場所に配置することです:

E:/parsec/bin/<exe-name>.<build-type>.exe

それよりも

E:/parsec/bin/<build-type>/<exe-name>.exe

CMake を使用してどのようにそれを行いますか?

4

2 に答える 2

28

いくつかのオプションがあります:

  1. ビルド後に実行可能ファイルをコピーします
  2. 実行可能ファイルの出力ディレクトリのカスタマイズ

ビルド後に実行可能ファイルをコピーします

ビルドが成功したら、実行可能ファイルをコピーできますが (初心者向けの回答を参照)、おそらくインストール ターゲットを使用する方が適切です。

installコマンドを使用して、 CMAKE_INSTALL_PREFIXディレクトリにコピーされるターゲット (実行可能ファイル、ライブラリ、ヘッダーなど) を指定します。cmake のコマンドライン (または cmake GUI) で CMAKE_INSTALL_PREFIX を指定できます。

実行可能ファイルの出力ディレクトリのカスタマイズ

警告: cmakelists.txt に絶対パスを直接設定することはお勧めしません。

set_target_properties を使用してRUNTIME_OUTPUT_DIRECTORYをカスタマイズします

set_target_properties( yourexe PROPERTIES RUNTIME_OUTPUT_DIRECTORY E:/parsec/bin/ )

別の方法として、CMAKE_RUNTIME_OUTPUT_DIRECTORYを変更すると、cmake プロジェクトのすべてのターゲットに対してこれを指定できます。dll をビルドするときは、 CMAKE_LIBRARY_OUTPUT_DIRECTORYも変更するように注意してください。

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )

追加情報: 次の質問をご覧ください。

于 2012-11-26T09:47:04.657 に答える
3

ほとんどの場合、次のような別のカスタム コマンドを使用してバイナリをコピーする必要があります。

add_custom_command(target your_target_name
          POST_BUILD
          COMMAND ${CMAKE_COMMAND} -E copy ${EXAMPLE_BIN_NAME} ${PROJECT_BINARY_DIR}/.
)
于 2012-11-26T00:12:27.240 に答える