CMakeLists完整解析(一)
首先,我们先通过介绍一下相关的核心概念来引入CMakeLists
1、gcc、make和cmake
gcc(GNU Compiler Collection)将源文件编译(Compile)成可执行文件或者库文件;
而当需要编译的东西很多时,需要说明先编译什么,后编译什么,这个过程称为构建(Build)。常用的工具是make,对应的定义构建过程的文件为Makefile;
而编写Makefile对于大型项目又比较复杂,通过CMake就可以使用更加简洁的语法定义构建的流程,CMake定义构建过程的文件为CMakeLists.txt。
2、cmake应用示例
cmake-template
├── CMakeLists.txt
└── src
└── c
└── main.c
其中CMakeLists.txt内容如下:
cmake_minimum_required(VERSION 3.12)
project(cmake_template VERSION 1.0.0 LANGUAGES C CXX)
add_executable(demo src/c/main.c)
该CMakeLists.txt声明了需要使用的cmake的最低版本;项目的名字、版本以及编译语言;最后一句定义了通过源文件main.c生成可执行文件demo。详细的CMake语法在后续文章会展开介绍。
1)生成构建系统
在cmake-template目录下,执行以下命令:
cmake --build build
2)执行构建
因为使用的是make工具,所以也可以创建一个build文件夹后在build中直接执行make命令:
mkdir build && cd build && make
执行完成后,可以在build目录下看到已经生成可执行文件demo,我们就可以执行demo
./build/demo
上面展示了一个c文件利用cmake和make执行的全过程,后面的文章会详细展开CMakeLists.txt编写的语法以及含义
参考文献:
https://zhuanlan.zhihu.com/p/367808125