如何让CLion在每次构建后自动将编译后的可执行文件复制到指定目录?
由于CLion使用CMake,我想这应该可以在CMakeLists.txt文件中使用一些CMake命令。但我不知道该怎么做。
答案 0 :(得分:8)
我不了解CLion,但通常你可以将post-build step作为executable target添加到CMake的Copy target file to another location in a post build step in CMake中:
add_executable(MyExe ...)
add_custom_command(TARGET MyExe
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:MyExe> SomeOtherDir)
参见例如{{3}}
答案 1 :(得分:1)
我使用CMAKE_RUNTIME_OUTPUT_DIRECTORY。它将是您的输出将要编译的地方。如果你需要做另一个副本,那么你需要做一些技巧。
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_PATH}/bin/client/${CMAKE_BUILD_TYPE})
答案 2 :(得分:0)
我最喜欢的选择是按照here的说明直接在右侧文件夹中生成可执行文件:
秘密在于使用目标属性RUNTIME_OUTPUT_DIRECTORY
。这具有按配置的选项(例如RUNTIME_OUTPUT_DIRECTORY_DEBUG)。
set_target_properties(mylibrary PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_DEBUG <debug path>
RUNTIME_OUTPUT_DIRECTORY_RELEASE <release path>
)
有关更多信息,请参见this link。
但是您也可以在终端上运行
cmake --help-property "RUNTIME_OUTPUT_DIRECTORY"
cmake --help-property "RUNTIME_OUTPUT_DIRECTORY_<CONFIG>"
在编译后复制可执行文件是一个很好的解决方案。