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

Automatically copy executable to directory after build in CLion? (using CMake)

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

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

我不知道 CLion,但通常您可以在 CMake 中将其作为 post-build step to an executable target 添加:

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

参见例如Copy target file to another location in a post build step in CMake

我用CMAKE_RUNTIME_OUTPUT_DIRECTORY。它将是您的输出将要编译的地方。如果你需要再做一个副本,那你就需要做一些技巧了。

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

我最喜欢的选择是按照说明直接在正确的文件夹中生成可执行文件 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>"

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