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

Wie konfiguriere ich Header-Include-Verzeichnisse in CMake richtig?

Patricia Arquette
Freigeben: 2024-12-18 14:27:10
Original
540 Leute haben es durchsucht

How to Properly Configure Header Include Directories in CMake?

Konfigurieren von Header-Include-Verzeichnissen mit CMake

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:

  1. 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})
      Nach dem Login kopieren
    • Für ältere CMake-Versionen (z. B. , 2.8.10 oder früher, ohne target_include_directories Support):

      include_directories(${YOUR_DIRECTORY})
      Nach dem Login kopieren
  2. 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})
    Nach dem Login kopieren

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})
Nach dem Login kopieren

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!

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