Heim > Backend-Entwicklung > C++ > Wie verwaltet man Include-Verzeichnisse und Header-Abhängigkeiten in CMake richtig?

Wie verwaltet man Include-Verzeichnisse und Header-Abhängigkeiten in CMake richtig?

Mary-Kate Olsen
Freigeben: 2024-12-19 15:43:10
Original
587 Leute haben es durchsucht

How to Properly Manage Include Directories and Header Dependencies in CMake?

Richtiges Hinzufügen von Include-Verzeichnissen mit CMake

In CMake ist die Verwaltung von Include-Verzeichnissen und Header-Abhängigkeiten für eine effektive Projektkompilierung von entscheidender Bedeutung. In diesem Artikel geht es um die Frage, wie CMake korrekt signalisiert werden kann, dass ein bestimmtes Verzeichnis Header enthält, die vom generierten Makefile einbezogen und verfolgt werden sollen.

Hinzufügen des Include-Verzeichnisses

Um ein Verzeichnis mit Headern einzuschließen, verwenden Sie den folgenden Befehl:

target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
Nach dem Login kopieren

Wenn Sie eine ältere CMake-Version verwenden, die dies nicht unterstützt target_include_directories, verwenden Sie stattdessen die alten include_directories:

include_directories(${YOUR_DIRECTORY})
Nach dem Login kopieren

Header-Abhängigkeiten verfolgen

Um die Header-Abhängigkeiten zu verfolgen, müssen Sie die Header-Dateien zur Liste der Quelldateien hinzufügen für das aktuelle Ziel:

set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)
add_executable(test ${SOURCES})
Nach dem Login kopieren

Auf diese Weise werden die Header-Dateien wie folgt angezeigt Abhängigkeiten im Makefile und anderen generierten Projektdateien, um deren Einbeziehung während der Kompilierung sicherzustellen.

Verwenden von Headern für mehrere Ziele

Um dieselben Header-Dateien über mehrere Ziele hinweg zu verwenden, befolgen Sie die folgenden Schritte Diese Schritte:

set(HEADER_FILES ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)

add_library(mylib libsrc.cpp ${HEADER_FILES})
target_include_directories(mylib PRIVATE ${YOUR_DIRECTORY})

add_executable(myexec execfile.cpp ${HEADER_FILES})
target_include_directories(myexec PRIVATE ${YOUR_DIRECTORY})
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass alle Ziele Zugriff auf die erforderlichen Header haben und dass Header-Abhängigkeiten angemessen verfolgt werden. Indem Sie diese Schritte befolgen, können Sie Include-Verzeichnisse und Header-Abhängigkeiten in Ihren CMake-Projekten effektiv verwalten.

Das obige ist der detaillierte Inhalt vonWie verwaltet man Include-Verzeichnisse und Header-Abhängigkeiten in CMake richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage