赞
踩
CMake
是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile
(通过 make
命令进行项目的构建),大多是IDE软件都集成了make
,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile
,会发现,makefile
通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。
而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件
,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具
,其编译流程如下图:
CMake优点:
打开终端
执行以下命令以更新软件包索引:
sudo apt update
sudo apt install cmake
因为我已经安装了CMake,大家执行这个命令就行了,我在此就不多演示了。
cmake --version
我的CMake版本是3.22.1
,下载的其他版本影响不大,后面可以编写CMake
的时候可以调整。
我们使用CMake需要编写一个CMakeLists.txt
里面放的是CMake
命令。
编写好之后执行cmake .(用于CMake文件在本级目录的)
/cmake ..(用于CMake在父级目录的)
执行好后,找到makefile
所在的文件夹,执行make
测试main.c
#include <stdio.h>
extern void func();
int main()
{
func();
return 0;
}
测试func.c
:
#include <stdio.h>
void func()
{
printf("Hello CMake");
}
测试CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)#指定版本
project(test)#指定我这个项目的名称,不是可执行文件的名称
add_executable(app main.c func.c)#app是可执行文件 后面的是源文件 中间用空格隔开
1、打开终端,打开CMakeLists.txt
所在的文件夹
执行下面的命令
cmake .
终端就会输出这些东西,我们的文件夹也会多出很多东西。
2、终端打开CMakeLists.txt
同级文件夹。
执行makefile命令
make
我们就会看到上面的景象。
3、执行可执行文件
./app
最终结果如上所示。
CMake
是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile
(通过 make
命令进行项目的构建),大多是IDE软件都集成了make
,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile
,会发现,makefile
通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。
我们使用CMake
的时候只需要cmake
和make
一下就可以,非常快速简单。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。