Heim >Backend-Entwicklung >C++ >Wie man Abhängigkeiten in CMake effektiv verwaltet: Ein Leitfaden zu lokalen Abhängigkeiten, Bibliothekszielen und Projektstruktur?
Abhängigkeitsverwaltung in CMake: Quelle, Bibliothek und CMakeLists.txt
Verwaltung von Abhängigkeiten zwischen Quelldateien, Bibliotheken und CMakeLists in CMake .txt sorgt für ein gut strukturiertes und effizientes Projekt. In diesem Artikel werden Strategien zur effektiven Handhabung von Abhängigkeiten in einem komplexen Projekt mit mehreren Bibliotheken und ausführbaren Dateien untersucht.
Lokale Abhängigkeiten: Ein Vorteil
Das Einrichten lokaler Abhängigkeiten vereinfacht die Abhängigkeitsverwaltung durch Angabe Abhängigkeiten auf Quell- und Linkebene innerhalb der CMakeLists.txt jedes Unterverzeichnisses. Dieser Ansatz sorgt für eine klare Hierarchie und vermeidet unnötiges Aufblähen, indem irrelevante Abhängigkeiten ausgeschlossen werden.
Beispielprojektstruktur und CMakeLists.txt
Stellen Sie sich ein Projekt mit miteinander verbundenen Bibliotheken und einer ausführbaren Datei vor:
Lib - LibA - CMakeLists.txt - Src - a.cc - Inc - a.h - LibB - CMakeLists.txt - Src - b.cc - Inc - b.h - LibC - CMakeLists.txt - Src - c.cc - Inc - c.h App1 - CMakeLists.txt - Src - main.cc
Bibliothek CMakeLists.txt (LibA, LibB, LibC)
include_directories(Inc ../LibC/Inc) add_subdirectory(../LibC LibC) add_library(LibA Src/a.cc Inc/a.h) target_link_libraries(LibA LibC) include_directories(Inc) add_library(LibB Src/b.cc Inc/b.h) include_directories(Inc ../LibB/Inc) add_subdirectory(../LibB LibB) add_library(LibC Src/c.cc Inc/c.h) target_link_libraries(LibC LibB)
App1 CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(App1 CXX) file(WRITE "Src/main.cc" "#include \"a.h\"\n#include \"b.h\"\nint main()\n{\na();\nb();\nreturn 0;\n}") ... include_directories(../Lib/LibA/Inc ../Lib/LibB/Inc) add_subdirectory(../Lib/LibA LibA) add_subdirectory(../Lib/LibB LibB) add_executable(App1 Src/main.cc) target_link_libraries(App1 LibA LibB)
Bibliotheksabhängigkeitsdiagramm
Das Abhängigkeitsdiagramm für dieses Projekt: App1 -> LibA -> LibC -> LibB App1 -> LibB
Strategien zum Verwalten mehrerer Abhängigkeiten
Es gibt mehrere Ansätze zum Verwalten mehrerer Abhängigkeiten:
Best Practices
Das obige ist der detaillierte Inhalt vonWie man Abhängigkeiten in CMake effektiv verwaltet: Ein Leitfaden zu lokalen Abhängigkeiten, Bibliothekszielen und Projektstruktur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!