Như trong câu trả lời của Oleg, tôi tin rằng biến chính xác cần đặt là CMAKE_RUNTIME_OUTPUT_DIRECTORY . Chúng tôi sử dụng như sau trong CMakeLists.txt gốc của chúng tôi:
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)
Bạn cũng có thể chỉ định các thư mục đầu ra trên cơ sở theo từng mục tiêu:
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"
)
Trong cả hai trường hợp, bạn có thể thêm _[CONFIG]
vào tên biến / tài sản để làm cho thư mục đầu ra áp dụng đối với một cấu hình cụ thể (các giá trị tiêu chuẩn cho cấu hình là DEBUG
, RELEASE
, MINSIZEREL
và RELWITHDEBINFO
).