CMakeLists.txt笔记

Posted by PNIDEMOOO on 2019-10-10

几个概念

GNU

一个软件项目,它开发了许多应用程序【不是一个公司

gcc

gcc是GNU编译器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada、Go语言和D语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。
gcc是Linux下默认的C/C++编译器,在windows环境下可以通过MinGw等GNU for Windows类工具使用gcc编译套件。

g++

g++是gcc的c++编译器

make

这里指 GNU make。
make工具通过编写的makefile脚本文件描述整个工程的编译、链接规则。

CMake

CMake是一个跨平台的编译工具。CMake目前主要使用场景是作为make的上层工具,产生可移植的makefile文件。

CMake具体使用方法

CMake通过编写CMakeLists.txt文件,之后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(.so)。

CMake的编译基本步骤:

mkdir build
cd build
cmake ..
make

其中cmake指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录。
因为cmake之后会生成很多编译的中间文件以及makefile文件,所以一般建议新建一个目录build,专门用来编译。

编写CMakeLists.txt

参考文献