一、基本语法
1、最小cmake版本:
cmake_minimum_required(VERSION 3.4.1)
2、指定项目名称:
project(demo)
3、添加源文件
aux_source_directory(. SRC_LIST) # 搜索当前目录下的所有.cpp文件,使用符号SRC_LIST代表源文件
4、添加头文件
include_directories(./)
5、设置编译类型
(1)生成可执行文件
add_executable(demo ${SRC_LIST}) # 生成可执行文件
(2)生成静态库
add_library(common STATIC util.cpp) # 生成静态库,第二个参数默认为STATIC
(3)生成动态库
add_library(common SHARED util.cpp) # 生成动态库或共享库
6、添加链接库
target_link_libraries(demo dl)
target_link_libraries(demo libface.a) # 链接libface.a
target_link_libraries(demo libface.so) # 链接libface.so
7、编译指定文件夹下的CMakeLists.txt
# 编译math
add_subdirectory(math)
# 添加态库路径
link_directories(${PROJECT_SOURCE_DIR}/math)
add_executable(${PROJECT_NAME} ${DIR_SRC})
target_link_libraries(${PROJECT_NAME} math)
math目录下文件
math.cc
CMakeLists.txt
CMakeLists.txt文件内容:
cmake_minimum_required (VERSION 2.8) #指定最cmake小版本
project(math) #指定工程名字
aux_source_directory(. DIR_SRCS) #添加源文件
add_library(math ${DIR_SRCS}) #生成静态库
8、设置编译参数
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
或者
add_compile_options(-fPIC)