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, MINSIZERELvà RELWITHDEBINFO).