私の問題はそれ自体です:私はVisual Studio2010を使用して小さなパーサーを開発しています。私はビルド構成ツールとしてCMakeを使用しています。
しかし、デフォルトの実行可能ビルドの動作は不便だと思います。私が欲しいのは、私の最終的なプログラムを次の場所に配置することです。
E:/parsec/bin/<exe-name>.<build-type>.exe
のではなく
E:/parsec/bin/<build-type>/<exe-name>.exe
CMakeを使ってどうしますか?
いくつかのオプションがあります。
ビルドが成功した後、実行可能ファイルをコピーできます(初心者の回答を参照)が、インストールターゲットを使用する方が良いかもしれません。
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プロジェクトのallターゲットにこれを指定できます。 dllをビルドするときは、 CMAKE_LIBRARY_OUTPUT_DIRECTORY も変更するように注意してください。
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
追加情報:これらの質問を見てください:
ほとんどの場合、次のような別のカスタムコマンドを使用してバイナリをコピーする必要があります。
add_custom_command(target your_target_name
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${EXAMPLE_BIN_NAME} ${PROJECT_BINARY_DIR}/.
)