如今進一步將MathFunctions.c和MathFunctions.h文件移到math目錄下:函數
./Demo3ui
|spa
+--- main.ccode
|blog
+--- math/get
|io
+--- MathFunctions.c編譯
|table
+--- MathFunctions.hclass
這種狀況下,須要在根目錄Demo3和子目錄math下各寫一個CMakeLists.txt文件。爲了方便,能夠將math目錄的文件編譯成靜態庫,再由main函數調用
根目錄下的CMakeLists.txt文件以下:
# CMake 最低版本號要求 cmake_minimum_required (VERSION 2.8) # 項目信息 project (Demo3) # 查找當前目錄下的全部源文件 # 並將名稱保存到 DIR_SRCS 變量 aux_source_directory(. DIR_SRCS) # 添加頭文件路徑 include_directories("${PROJECT_SOURCE_DIR}/math") # 添加 math 子目錄 add_subdirectory(math) # 指定生成目標 add_executable(Demo main.c) # 添加連接庫 target_link_libraries(Demo MathFunctions)
該文件添加了下面的內容: 使用命令include_directories添加頭文件路徑。使用命令 add_subdirectory 指明本項目包含一個子目錄 math,這樣 math 目錄下的 CMakeLists.txt 文件和源代碼也會被處理 。使用命令 target_link_libraries 指明可執行文件 main 須要鏈接一個名爲 MathFunctions 的連接庫 。
子目錄的CMakeList.txt以下:
# 查找當前目錄下的全部源文件 # 並將名稱保存到 DIR_LIB_SRCS 變量 aux_source_directory(. DIR_LIB_SRCS) # 生成連接庫 add_library (MathFunctions ${DIR_LIB_SRCS})
在該文件中使用命令 add_library 將 src 目錄中的源文件編譯爲靜態連接庫。在該文件中使用命令 add_library 將 src 目錄中的源文件編譯爲靜態連接庫。