Heim > Backend-Entwicklung > C++ > Wie verwalte ich Include-Verzeichnisse und Header-Dateien in CMake richtig?

Wie verwalte ich Include-Verzeichnisse und Header-Dateien in CMake richtig?

DDD
Freigeben: 2024-12-27 19:49:14
Original
899 Leute haben es durchsucht

How Do I Properly Manage Include Directories and Header Files in CMake?

Einschlussverzeichnisse in CMake verstehen

Bei der Arbeit mit Header-Dateien in CMake ist die Sicherstellung einer ordnungsgemäßen Einbindung und Abhängigkeitsverfolgung von entscheidender Bedeutung. CMake unterscheidet zwischen Header-Dateien innerhalb und außerhalb des Projekts. Um Header-Dateien korrekt einzubinden, befolgen Sie diese Schritte:

  1. Fügen Sie das Include-Verzeichnis hinzu:

    Um ein Verzeichnis anzugeben, das die einzuschließenden Header-Dateien enthält, Verwenden Sie die Funktion target_include_directories:

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

    Für ältere CMake-Versionen ohne target_include_directories verwenden Sie include_directories stattdessen:

    include_directories(${YOUR_DIRECTORY})
    Nach dem Login kopieren
  2. Header zu Quelldateien hinzufügen:

    Um Abhängigkeiten zu verfolgen und genaue Makefiles zu generieren, fügen Sie die Headerdateien zu den hinzu Liste der Quelldateien 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

Befolgen Sie diese Schritte erkennt CMake die angegebenen Header als Teil des Projekts und bezieht sie in seine Abhängigkeitsverfolgung ein, um eine ordnungsgemäße Verarbeitung in generierten Ausgabedateien wie Makefiles und Projektdateien für IDEs sicherzustellen.

Verwendung von Headern über mehrere Ziele hinweg :

Um Header über mehrere Ziele hinweg wiederzuverwenden, ziehen Sie den folgenden Ansatz in Betracht:

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

Dies Die Methode stellt sicher, dass sowohl Bibliotheks- als auch ausführbare Ziele die angegebenen Header enthalten und ihre Abhängigkeiten korrekt verfolgen.

Das obige ist der detaillierte Inhalt vonWie verwalte ich Include-Verzeichnisse und Header-Dateien 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage