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
Mary-Kate OlsenOriginal
2024-12-19 15:43:10589Durchsuche

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

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

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

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

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!

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