Heim >Backend-Entwicklung >C++ >Wie kann CMake kompilierte Dateien in einem separaten „bin'-Verzeichnis organisieren?

Wie kann CMake kompilierte Dateien in einem separaten „bin'-Verzeichnis organisieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 07:51:11267Durchsuche

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

Organisieren der CMake-Ausgabe in einem separaten „bin“-Verzeichnis

Bei der Arbeit mit Projekten mit mehreren Modulen, die eine Plugin-Architektur verwenden, ist dies oft wünschenswert um die kompilierten Dateien vom Quellcode getrennt zu halten. CMake, ein leistungsstarker Build-System-Generator, kann so konfiguriert werden, dass kompilierte Dateien in ein bestimmtes „bin“-Verzeichnis ausgegeben werden.

Um dies zu erreichen, kann die Variable CMAKE_RUNTIME_OUTPUT_DIRECTORY verwendet werden. Durch Festlegen dieser Variablen können Sie das Verzeichnis angeben, in dem ausführbare Dateien und Plugin-Dateien gespeichert werden. Beispielsweise können in der Stammdatei CMakeLists.txt die folgenden Einstellungen hinzugefügt werden:

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)

Diese Konfiguration weist CMake an, Archive und Bibliotheken in einem „lib“-Verzeichnis innerhalb des Binärverzeichnisses zu speichern, während ausführbare Dateien und Dynamische Bibliotheken werden im Verzeichnis „bin“ abgelegt.

Alternativ können Sie die Ausgabeverzeichnisse pro Ziel festlegen 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"
)

Durch die Verwendung beider Ansätze können Sie die kompilierte Ausgabe effektiv vom Quellcode trennen und so eine sauberere und besser organisierte Projektstruktur gewährleisten.

Das obige ist der detaillierte Inhalt vonWie kann CMake kompilierte Dateien in einem separaten „bin'-Verzeichnis organisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn