cmake万能模板

最近在学习cmake 的使用,相比于Makefile,它不仅简单,而且容易学习,只有几个参数,下面讲介绍cmake的使用。
首先,我在Linux中创建如下几个目录文件:

├── build
├── CMakeLists.txt
├── include
├── src

说明:build–自己创建的目录,后边会用到
include–存放头文件的目录
src——存放源文件的目录
CMakeLists.txt–cmake文件
其中CMakeLists.txt内容如下:

#1.cmake verson,指定cmake版本 
cmake_minimum_required(VERSION 3.5.1)

#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(samplest)

#3.head file path,头文件目录
INCLUDE_DIRECTORIES(
include
)

#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)

#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH
${DIR_SRCS}
)

#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})

#7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)

然后我们进入build目录,执行cmake ..,然后执行make,在build目录就生成了我们的目标文件,
如下

├── CMakeCache.txt
├── CMakeFiles
├── build
└── samplest

samplest即是我们的可执行二进制文件;执行./samplest即可。
注:新建build目录的目的是方便清理编译环境,因为在cmake的过程中会产生很多文件,这样可以容易清理。

发布了13 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sdsszk/article/details/82353977