Grundlegendes zum Header-Abhängigkeitsmanagement von CMake
CMake behandelt Header-Dateien zunächst außerhalb des Projekts Verzeichnis als externe Ressourcen. Dieses Verhalten kann zu Problemen bei der Abhängigkeitsverfolgung in generierten Projekten führen.
Lösung: Einschlussverzeichnisse festlegen
Um Header ordnungsgemäß einzuschließen, sind zwei Schritte erforderlich:
Hinzufügen des Include Verzeichnis:
Verwenden Sie target_include_directories für aktuelle CMake-Versionen (z. B. 3.0):
target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
Für ältere CMake-Versionen (z. B. , 2.8.10 oder früher, ohne target_include_directories Support):
include_directories(${YOUR_DIRECTORY})
Header-Dateien in Zielquellenliste einschließen:
Um Abhängigkeiten zu verfolgen, fügen Sie Header hinzu Dateien zur Quellliste für die Ziel:
set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h) add_executable(test ${SOURCES})
Beispiel: Header mit mehreren Zielen verknüpfen
So teilen Sie Header-Dateien über mehrere Ziele hinweg:
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})
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Header-Include-Verzeichnisse in CMake richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!