Seperti dalam jawaban Oleg, saya percaya variabel yang benar untuk ditetapkan adalah CMAKE_RUNTIME_OUTPUT_DIRECTORY . Kami menggunakan yang berikut ini di root CMakeLists.txt kami:
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)
Anda juga dapat menentukan direktori keluaran berdasarkan per target:
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"
)
Dalam kedua kasus, Anda dapat menambahkan _[CONFIG]
untuk nama variabel / properti untuk membuat direktori keluaran berlaku untuk konfigurasi tertentu (nilai standar untuk konfigurasi yang DEBUG
, RELEASE
, MINSIZEREL
dan RELWITHDEBINFO
).
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
, mengingat bahwa perintahinstall(TARGETS <target_name>)
masih mengeluh tentang "tidak diberikan RUNTIME DESTINATION untuk target yang dapat dieksekusi"? Variabel ini seharusnya memberikan nilai default, oleh karena ituinstall
perintah tidak boleh mengeluh tentang tidak adanya aRUNTIME DESTINATION
.Menggunakan
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "/some/full/path/to/bin")
sumber
Gunakan
EXECUTABLE_OUTPUT_PATH
variabel CMake untuk mengatur jalur yang diperlukan. Untuk detail, lihat dokumentasi CMake online:CMake 2.8.8 Dokumentasi
sumber
Bagi saya saya menggunakan cmake 3.5, di bawah ini (
set variable
) tidak berfungsi:tetapi ini berhasil (
set set_target_properties
):sumber
sumber
gunakan konfigurasi baris ini:
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build/)
tempatkan proyek CMakeLists.txt Anda.
$ {PROJECT_SOURCE_DIR} ini adalah direktori sumber Anda saat ini tempat proyek.
dan jika berkelana mengapa $ {EXECUTABLE_OUTPUT_PATH}
periksa file ini
CMakeCache.txt
kemudian cari kata kuncioutput path
,semua variabel yang didefinisikan di sini, itu akan memberikan penjelasan lengkap tentang proyek semua
setting·
sumber
sumber
Terlepas dari apakah saya mendefinisikan ini di CMakeLists.txt utama atau yang individual, masih mengasumsikan saya ingin semua lib dan sampah dari jalur utama, yang merupakan asumsi yang paling tidak berguna dari semua.
sumber
Untuk menambahkan ini:
Jika Anda menggunakan CMAKE untuk menghasilkan solusi Visual Studio , dan Anda ingin Visual Studio mengeluarkan file yang dikompilasi ke / bin, jawaban Peter perlu sedikit dimodifikasi:
sumber