摘要:
CMake的基本使用
适用CMake在外部构建, 防止污染工作目录
CMake
基本命令
每个目录下需要有CMakeLists.txt, 解释如何构建
指定CMake最低版本号要求
cmake_minimum_required(VERSION 2.8)
指定项目名称
project(projectName)
指定生成目标
add_executable(Demo fileList...)
例如
add_executable(main main.cpp)
多个文件时只需要在fileList处罗列即可, 空格隔开每个文件名, Demo则是生成的可执行文件名称
执行CMake
# cmake .
.表示当前目录查找指定文件夹下所有的文件
aux_source_directory(<dir> <variable>)
将dir下所有文件名赋值为variable变量, 每个变量名用空格隔开
添加头文件路径
include_directories("path")
多级目录
多个目录时, 每个目录下面都要有CMakeLists.txt文件
1 | ./Demo |
对于这种情况: 将math下的代码生成静态链接库
1 | aux_source_directory(. DIR_LIB_SRCS) |
Demo文件夹下:
1 | project(Demo) |
这样即可多级目录构建
外部构建
使用cmake . 的是后总是在当前目录生成很多文件和文件夹, 目前来说这些除了Makefile都是没用的,看起来很闹心 。如果可以让生成的文件放到一个固定的目录就好了。 也就是官方推荐的外部构建(out-of-source), 最大的好处是不会再原来的目录下生成与工程无关的文件。
外部构建的方法很简单,一开始使用cmake .
的时候这个.
表示的是当前目录,那么如果在别的地方,时候cmake命令构建的时候只要给定一个正确的路径就可以了,例如在当前工程目录下创建一个build
目录,进入build目录, 然后使用cmake ..
即可构建。这样生成的文件就在当前目录下了。
自定义编译选项
后续用的话再更新, 现在刚开始还用不到。