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

问题描述 投票:0回答:3

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

由于 CLion 使用 CMake,我想这应该可以通过 CMakeLists.txt 文件中的某些 CMake 命令实现。但我不知道该怎么做。

build cmake clion
3个回答
21
投票

我不了解 CLion,但通常您可以将其作为 构建后步骤添加到 CMake 中的可执行目标中:

add_executable(MyExe ...)
add_custom_command(TARGET MyExe 
                   POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:MyExe> SomeOtherDir)

参见例如在 CMake 的构建后步骤中将目标文件复制到另一个位置


6
投票

我最喜欢的选项是直接在正确的文件夹中生成可执行文件,如下所示这里

秘密是使用目标属性

RUNTIME_OUTPUT_DIRECTORY
。它具有每个配置选项(例如 RUNTIME_OUTPUT_DIRECTORY_DEBUG)。

set_target_properties(mylibrary PROPERTIES
                      RUNTIME_OUTPUT_DIRECTORY_DEBUG <debug path>
                      RUNTIME_OUTPUT_DIRECTORY_RELEASE <release path>
)

请参阅此链接了解更多信息。

但是您也可以在终端上运行:

cmake --help-property "RUNTIME_OUTPUT_DIRECTORY"
cmake --help-property "RUNTIME_OUTPUT_DIRECTORY_<CONFIG>"

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


4
投票

我使用 CMAKE_RUNTIME_OUTPUT_DIRECTORY。它将是您的输出将被编译的地方。如果您需要再做一份副本,那么您将需要做一些技巧。

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_PATH}/bin/client/${CMAKE_BUILD_TYPE})

© www.soinside.com 2019 - 2024. All rights reserved.