CMake用法


好久没有更新博客了,因为最近都用实验室的电脑,自己的电脑很少用,所以环境没有更新过来。
今天简单介绍一下cmake的用法,比写Makefile和configure要简单得多。

项目名

project(dev)

添加源文件

首先是生成的文件,然后后面跟一系列的源文件

add_executable(test test.cpp)

链接参数

可以不用写-l,相当于在每项前面加一个-l

link_libraries(pthread ibverbs)

优化选项

可以通过编译选项add_compile_options

add_compile_options(-O3)

或者可以通过add_definitions增加命令行参数比如

add_definitions(-O3 -Wall -DFOO)

或者通过设置环境变量来完成。
C++是CXX_FLAGS然后C是C_FLAGS

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")

动态链接库

add_library(dplist SHARED lib/dplist.c)

add_library(tcpsock SHARED lib/tcpsock.c)

伪目标

以make valgrind为例

add_custom_target(valgrind)
add_dependencies(valgrind sensor_gateway)
add_custom_command(
    TARGET valgrind
    COMMAND valgrind --leak-check=full --show-leak-kinds=all --verbose --track-origins=yes --log-file="valgrind.log" ./sensor_gateway 1234
)

Author: 蒋璋
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source 蒋璋 !