CMake跨平台构建工具的学习笔记
简介
CMake是一个跨平台的构建工具,可以自动生成Makefile、Visual Studio等工程文件,支持多种编程语言,包括C、C++、Java等。CMake语法简单、易读、易写,适合中小型项目的构建。
安装CMake
在官网 https://cmake.org/download/ 上下载适合自己系统的CMake安装包,安装完成后,可以在命令行中输入:
cmake --version
检查是否安装成功。
CMake项目构建
1. 配置CMake项目
新建一个文件夹,例如myproject,并在该文件夹下新建一个C++源文件main.cc,包含一个main函数。
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
在myproject主目录下创建一个名为CMakeLists.txt的文件,并添加以下内容:
project(hello) # 项目名
add_executable(hello main.cc) # 生成可执行文件的名称及其对应的源文件
接着,我们通过终端进入myproject文件夹,并执行以下命令:
mkdir build
cd build
cmake ..
这里,我们新建了一个build目录,用于存放编译生成的文件,执行cmake ..命令将CMakeLists.txt中的配置信息写入Makefile文件中。
2. 构建CMake项目
上一步成功创建了Makefile文件,接下来我们执行以下命令:
make
这时,我们可以看到当前目录下生成了hello可执行文件,接着我们执行以下命令运行程序:
./hello
如果一切顺利,我们将在终端中看到输出结果为“Hello, World!”。至此,我们成功完成了一个基于CMake的C++项目的构建。
3. CMake项目导出为其他构建系统文件
在CMake中,我们可以将项目导出为其他构建系统所需的文件,比如make、Ninja、Visual Studio等。这里以导出为make为例。
在终端中进入myproject/build目录,执行以下命令:
cmake .. -G "Unix Makefiles"
这里,我们将当前目录下的Makefile文件重新生成,并命名为“Makefile”,可以看到与上一次生成的Makefile文件有所不同。此时我们执行以下命令,即可在当前目录生成新的Makefile文件:
make -f Makefile
这样就可以通过CMake快速生成不同构建系统需要的文件。
示例说明
示例1:生成C++静态库
在CMake中,我们可以通过以下命令生成C++静态库:
add_library(lib STATIC foo.cc bar.cc)
其中,lib为静态库名称,foo.cc和bar.cc为库文件中的源文件,可以包含一个或多个源文件。
示例2:生成C++动态库
同样在CMake中,我们可以通过以下命令生成C++动态库:
add_library(lib SHARED foo.cc bar.cc)
其中,SHARED表示生成动态库,静态库示例中已经介绍过。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:cmake跨平台构建工具的学习笔记 - Python技术站