1、基本步骤
可以参看如下帖子
2、常用变量
3、常用函数
cmake_minimum_required
设置对cmake的版本要求
set
configure_file
include_directories
添加头文件目录
link_directories
添加需要链接的库文件目录
project
add_subdirectory
设置子目录,只有设置子目录,cmake才会去执行子目录里的CMakeLists.txt
add_executable
target_link_libraries
add_library
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
source1 [source2 ...])
其中
<name> :库的名字,直接写名字即可,不要写lib,会自动加上前缀的哈。
[STATIC | SHARED | MODULE] :类型有三种。
SHARED,动态库
STATIC,静态库
MODULE,在使用 dyld 的系统有效,如果不支持 dyld,则被当作 SHARED 对待。
EXCLUDE_FROM_ALL:这个库不会被默认构建,除非有其他的组件依赖或者手
工构建。
(37条消息) cmake之 ADD_LIBRARY()_我爱加菲猫-优快云博客_add_library
install
(37条消息) 【CMake】cmake的install指令_Yngz_Miao的博客-优快云博客_cmake install
find_library
find_library ( <VAR> name | NAMES name1 [name2 ...] [NAMES_PER_DIR] [HINTS path1 [path2 ... ENV var]] [PATHS path1 [path2 ... ENV var]] [PATH_SUFFIXES suffix1 [suffix2 ...]] [DOC "cache documentation string"] [NO_DEFAULT_PATH] [NO_CMAKE_ENVIRONMENT_PATH] [NO_CMAKE_PATH] [NO_SYSTEM_ENVIRONMENT_PATH] [NO_CMAKE_SYSTEM_PATH] [CMAKE_FIND_ROOT_PATH_BOTH | ONLY_CMAKE_FIND_ROOT_PATH | NO_CMAKE_FIND_ROOT_PATH] )
作用:用于查找库。
VAR 创建名为的缓存条目以存储此命令的结果。
如果找到了库,结果将存储在变量中,除非清除变量,否则将不会重复搜索。
如果什么也没找到,结果将是-NOTFOUND。
REQUIRED如果未找到任何内容,该选项将停止处理并显示一条错误消息,
否则,下次使用相同的变量调 用find_library时,将再次尝试搜索。
NAMES 为库指定一个或多个可能的名称。
HINTS, PATHS 除了默认位置,还指定要搜索的目录。该子选项读取系统环境变量的路径。
DOC 指定缓存条目的文档字符串。
REQUIRED 如果未找到任何内容,则停止处理并显示错误消息。
例如
FIND_LIBRARY(RUNTIME_LIB mylib /usr/lib /usr/local/lib NO_DEFAULT_PATH)
cmake会在目录中查找,如果所有目录中都没有,值RUNTIME_LIB就会被赋为NO_DEFAULT_PATH
find_package
进行外部库进行查找
cmake find_package 原理简介以及使用说明_AndyCheng_hgcc的博客-优快云博客_cmake find_package