1.文件組織結(jié)構(gòu)
./test
|
+--- main.cc
|
+--- math/
|
+--- mathA
|
+--- FunctionsA.cc
|
+--- FunctionsA.h
+--- mathB
|
+--- FunctionsB.cc
|
+--- FunctionsB.h
+--- other/
|
+--- OtherFunctions.cc
|
+--- OtherFunctions.h
2.根目錄中的CMakeList.txt
# CMake 最低版本號(hào)要求
cmake_minimum_required(VERSION 2.8)
# 打開Debug模式
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
# 添加預(yù)定義宏
ADD_DEFINITIONS(-D __APPLE__)
# 項(xiàng)目信息
project(test)
# 添加頭文件目錄
include_directories(${PROJECT_SOURCE_DIR}/math)
include_directories(${PROJECT_SOURCE_DIR}/other)
# 添加子目錄
add_subdirectory(math)
add_subdirectory(other)
# 添加頭庫目錄
link_directories(${PROJECT_SOURCE_DIR}/math)
link_directories(${PROJECT_SOURCE_DIR}/other)
# 指定生成目標(biāo)
add_executable(${PROJECT_NAME} main.cc)
# 添加鏈接庫
target_link_libraries(${PROJECT_NAME} math other)
3.math目錄下的CMakeList.txt
# 分別將mathA目錄下的所有源文件和mathB目錄下的所以源文件
# 保存到 MATHA 變量和MATHB變量
aux_source_directory(./mathA DIR_MATHA)
aux_source_directory(./mathB DIR_MATHB)
LIST (APPEND FULL_SRC
${DIR_MATHA}
${DIR_MATHA}
)
# 添加頭文件目錄,也可寫成./math
include_directories(${PROJECT_SOURCE_DIR}/math)
# 生成鏈接庫
add_library(math ${FULL_SRC})
4.other目錄下的CMakeList.txt
# 查找當(dāng)前目錄下的所有源文件
# 并將名稱保存到 SRC_LIST 變量
aux_source_directory(./src SRC_LIST)
include_directories(./)
# 生成鏈接庫
add_library(other ${SRC_LIST})
cmake使用示例與整理總結(jié)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者