更新时间: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]
附加到变量/属性名称,以使输出目录适用于特定配置(配置的标准值为 DEBUG
、RELEASE
、MINSIZEREL
和 RELWITHDEBINFO
).
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
).