几个概念
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,专门用来编译。