cmake基本使用
1.cmake是什么?
cmake是一种项目构建工具,在cmake出现之前我们一般使用make进行项目构建,但是makefile编写比较复杂,因此cmake应运而生,使用cmake只需要编写简单的CMakeLists.txt,cmake会根据CMakeLists.txt生成对应的makefile。
2.cmake的安装和配置
1.cmake安装
2.cmake配置
cmake使用一般要设定两个环境变量,如果工程使用的包含文件或者库文件放在非默认路径下,则需要使用设置该环境变量来弥补
1 2
| export CMAKE_INCLUDE_PATH=/usr/include export CMAKE_LIBRARY_PATH=/usr/lib
|
3.CMakeLists.txt的编写规则
脚本关键字一般使用大写,当然使用小写也是可以的
1.CMAKE_MINIMUM_REQUIRED
1 2 3 4
| CMAKE_MINIMUM_REQUIRED(VERSION ${VERSION})
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
|
2.PROJECT
1 2 3 4
| PROJECT(project_name ${program_language})
PROJECT(shadowsocks-libev C )
|
3.INCLUDE_DIRECTORY
1 2 3 4
| INCLUDE_DIRECTORIES(${PATH})
INCLUDE_DIRECTORIES(/usr/include)
|
4.LINK_DIRECTORIES
1 2 3 4
| LINK_DIRECTORIES(${PATH})
LINK_DIRECTORIES(/usr/lib)
|
5.SET
1 2 3 4 5 6 7 8 9 10 11
| SET(PARAM VALUE)
SET(EXECUTABLE bin)
LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH CMAKE_C_COMPILER CMAKE_CXX_COMPILER
|
6.ADD_LIBRARY
1 2 3 4 5
| ADD_LIBRARY(<name> STATIC/SHARED/MODULE <source>)
|
7.AUX_SOURCE_DIRECTORY
1 2
| AUX_SOURCE_DIRECTORY(src SOURCE_DIR)
|
8.其他常用的关键字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| TARGET_LINK_DIRECTORIES TARGET_LINK_DIRECTORIES(/usr/lib)
TARGET_INCLUDE_DIRECTORIES TARGET_INCLUDED_DIRECTORIES(/usr/include)
MESSAGE MESSAGE(type"${message}") type 1.STATUS 非重要信息 2.WARNING 警告信息,会继续执行 3.AUTHOR_WARNING 警告信息(dev),会继续执行 4.SEND_ERROR 错误,继续执行,但是会跳过生辰步骤 5.FATAL_ERROR 错误,终止所有处理过程
MESSAGE(FATAL_ERROR "FATAL error")
OPTION(WITH_STATIC "build with static libraries" ON)
SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello")
|
4.cmake使用方法
在构建cmake项目的时候我们一般会在项目的根目录建立一个build目录,然后将生成的目标文件以及中间文件生成在build目录下
1 2 3
| cd $PROJECT && mkdir build && cd build && cmake .. && make
cmake -DCMAKE_C_COMPILER=clang
|