沒有包的簡單方法
構建可執行檔案(編輯器)並將庫(突出顯示)連結到它的示例。專案結構很簡單,它需要一個主 CMakeLists 和每個子專案的目錄:
CMakeLists.txt
editor/
CMakeLists.txt
src/
editor.cpp
highlight/
CMakeLists.txt
include/
highlight.h
src/
highlight.cpp
主 CMakeLists.txt 包含每個子專案的全域性定義和 add_subdirectory
呼叫:
cmake_minimum_required(VERSION 3.0)
project(Example)
add_subdirectory(highlight)
add_subdirectory(editor)
庫的 CMakeLists.txt 為其分配源幷包含目錄。通過使用 target_include_directories()
而不是 include_directories()
,include dirs 將傳播給庫使用者:
cmake_minimum_required(VERSION 3.0)
project(highlight)
add_library(${PROJECT_NAME} src/highlight.cpp)
target_include_directories(${PROJECT_NAME} PUBLIC include)
應用程式的 CMakeLists.txt 分配源並連結高亮庫。hightlighter 的二進位制檔案和包含的路徑由 cmake 自動處理:
cmake_minimum_required(VERSION 3.0)
project(editor)
add_executable(${PROJECT_NAME} src/editor.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC highlight)