且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将 CMake 输出转换为“bin"目录?

更新时间:2022-03-03 22:29:15

在 Oleg 的回答中,我相信要设置的正确变量是 CMAKE_RUNTIME_OUTPUT_DIRECTORY.我们在根 CMakeLists.txt 中使用以下内容:

As in Oleg's answer, I believe the correct variable to set is CMAKE_RUNTIME_OUTPUT_DIRECTORY. We use the following in our root CMakeLists.txt:

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

您还可以为每个目标指定输出目录:

You can also specify the output directories on a per-target basis:

set_target_properties( targets...
    PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)

在这两种情况下,您都可以将 _[CONFIG] 附加到变量/属性名称,以使输出目录适用于特定配置(配置的标准值为 DEBUGRELEASEMINSIZERELRELWITHDEBINFO).

In both cases you can append _[CONFIG] to the variable/property name to make the output directory apply to a specific configuration (the standard values for configuration are DEBUG, RELEASE, MINSIZEREL and RELWITHDEBINFO).