在CLion中构建后自动将可执行文件复制到目录?

时间:2015-07-07 19:02:06

标签: build cmake clion

如何让CLion在每次构建后自动将编译后的可执行文件复制到指定目录?

由于CLion使用CMake,我想这应该可以在CMakeLists.txt文件中使用一些CMake命令。但我不知道该怎么做。

3 个答案:

答案 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>"

在编译后复制可执行文件是一个很好的解决方案。