cmake使用
Ubuntu下载cmake 命令:sudo apt-get install cmake
获取cmake版本命令:cmake --version
常用的cmake宏
# cmake命令后跟随的路径
PROJECT_SOURCE_DIR
# 当前CMakeLists.txt所在的路径
CMAKE_CURRENT_SOURCE_DIR
# 可执行程序存储位置
EXECUTABLE_OUTPUT_PATH
# 生成库的存储位置
LIBRARY_OUTPUT_PATH
1、设置当前CMakeLists.txt支持的最低版本的cmake
cmake_minimum_required(VERSION 3.15)
2、设置项目名称
project(test)
3、变量初始化(把add赋值给变量ADDLIB)
set(ADDLIB add)
4、查找文件夹中的文件
# 查找当前路径下的所有文件并赋值到SRC
# ./表示当前路径,SRC是存储文件名称的变量,其中存储以空格或冒号分割
aux_source_directory(./ SRC)
# 查找当前路径下的所有后缀为“.cpp”的文件并赋值到SRC,也可以用来读取.h文件
# GLOB命令主要用于匹配规则在指定的目录内匹配到所需要的文件
# READ命令将文件中内容原封不动的读取变量中
file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
5、指定头文件路径
# HEADPATH变量中存储的是头文件路径
include_directories(${HEADPATH})
6、可执行程序生成路径
# EXECUTABLE_OUTPUT_PATH 是cmake自身的变量
set(EXECUTABLE_OUTPUT_PATH ${EXECPATH})
7、生成可执行程序
# 分别是可执行程序名称和存储文件名称的变量
add_executable(${APPNAME} ${SRC})
8、生成静态、动态库
# add_library(add SHARED ${SRC})
# add_library(add STATIC ${SRC})
生成库时需要指定:库存储路径
set(LIBRARY_OUTPUT_PATH ${LIBPATH})
9、指定链接库路径
link_directories(${LIBPATH})
10、链接静态、动态库
# 链接静态库在add_executable之前
# 链接动态库在add_executable之后
link_libraries(${ADDLIB})
# target_link_libraries可以指定可执行程序名称
target_link_libraries(app add)
链接库时需要指定:库头文件路径、库存储路径、库名称
11、指定一个宏,可以作用在源文件中
# 宏的名称是DEBUG,-D是前缀
add_definitions(-DDEBUG)
12、给当前节点添加子目录(add为子目录名称)
add_subdirectory(add)
13、打印日志消息
message("11111111") # 重要消息
message(STATUS "2222222") # 非重要消
message(SEND_ERROR "3333333") # 可忽略错
message(FATAL_ERROR "444444") # 不可忽略错误