好久没有更新博客了,因为最近都用实验室的电脑,自己的电脑很少用,所以环境没有更新过来。
今天简单介绍一下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
)