CMake 中的依賴關係管理:來源、庫和CMakeLists.txt
在CMake 中,管理來源檔案
本地依賴關係:優勢
設定本地依賴關係透過指定來簡化依賴關係管理每個子目錄的 CMakeLists.txt 中來源和連結層級的依賴項。這種方法提供了清晰的層次結構,並透過排除不相關的依賴項來避免不必要的膨脹。
範例項目結構與CMakeLists.txt
考慮一個具有互連函式庫和執行檔的項目:
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
庫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)
此專案的依賴關係圖:App1 -> LibA-> LibC-> LibB 應用程式1 -> LibB
管理多個相依性的策略存在多種管理多個依賴項的方法:
建立包含標頭和函式庫的全功能庫目標路徑。
以上是如何有效管理 CMake 中的依賴關係:本地依賴關係、庫目標和專案結構指南?的詳細內容。更多資訊請關注PHP中文網其他相關文章!