Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah CMake Boleh Menyusun Fail Tersusun ke dalam Direktori 'bin' yang berasingan?

Bagaimanakah CMake Boleh Menyusun Fail Tersusun ke dalam Direktori 'bin' yang berasingan?

Linda Hamilton
Linda Hamiltonasal
2024-12-13 07:51:11266semak imbas

How Can CMake Organize Compiled Files into a Separate 'bin' Directory?

Mengatur Output CMake ke dalam Direktori 'bin' Berasingan

Apabila bekerja dengan projek berbilang modul yang menggunakan seni bina pemalam, ia selalunya diingini untuk memastikan fail yang disusun berasingan daripada kod sumber. CMake, penjana sistem binaan yang berkuasa, boleh dikonfigurasikan untuk mengeluarkan fail yang disusun ke direktori 'bin' yang ditetapkan.

Untuk mencapai matlamat ini, pembolehubah CMAKE_RUNTIME_OUTPUT_DIRECTORY boleh digunakan. Dengan menetapkan pembolehubah ini, anda boleh menentukan direktori tempat fail boleh laku dan pemalam akan disimpan. Contohnya, dalam fail CMakeLists.txt akar, tetapan berikut boleh ditambah:

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)

Konfigurasi ini mengarahkan CMake untuk menyimpan arkib dan perpustakaan dalam direktori 'lib' dalam direktori binari, manakala boleh laku dan perpustakaan dinamik diletakkan dalam direktori 'bin'.

Sebagai alternatif, anda boleh menetapkan direktori output pada setiap sasaran asas menggunakan set_target_properties():

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"
)

Dengan menggunakan mana-mana pendekatan, anda boleh memisahkan output terkumpul daripada kod sumber dengan berkesan, memastikan struktur projek yang lebih bersih dan teratur.

Atas ialah kandungan terperinci Bagaimanakah CMake Boleh Menyusun Fail Tersusun ke dalam Direktori 'bin' yang berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn