cmake是一个高级的编译配置工具
可以通过编译CMakeLists.txt来将不同语言或者编译器的项目输出为一个可执行文件
官网:https://cmake.org

1 安装cmake

地址:
https://cmake.org/download/VZK}3`Z}0`Z)ACB5X5EYI7M.png
选择自动添加环境,安装完后不用手动添加环境,继续下一步完成安装。
R~H``{OD$E`2KWSTH$P3%`P.png
安装完成后检查一下
![$OB0_ZPPKX4MR{B{@9VZ50.png

2 实操来说明cmake的使用

安装好了cmake后开始helloworld吧!

2.1 新建文件夹

首先新建一个文件夹,内容如下:
K(_8@QKL_P)CK7637~3P~U6.png
其中build目录为空,
CMakeLists.txt的内容如下:

  1. #cmake需要的最低版本
  2. cmake_minimum_required(VERSION 3.0)
  3. #创建了一个名为 hello 的工程,对应生成一个 hello.sln 。project函数表示创建一个工程
  4. project (hello)
  5. #添加一个名为 hello 的可执行程序项目,它的源代码为 helloworld.cpp
  6. add_executable(hello helloworld.cpp)

helloworld.cpp文件内容如下:

  1. #include <iostream>
  2. int main()
  3. {
  4. std::cout<<"Hello World!"<<std::endl;
  5. system("Pause");
  6. return 0;
  7. }

2.2 开始cmake

从CMD进入build文件夹(可以使用powershell)(在文件夹下shift加右键)$9ZZ(JDGPTK%RQL%2ZZ09BB.png
然后是cmake .. (注意是空格+点点)
该命令使cmake检测编译环境,并生成相应的makefile。
9BT4W9_}~@4$VL@~FEONXD2.png

2.3 编译调试

使用VS打开sln文件
@A$2M0X8)SYOH%$C%V~D6_A.png
注意:由于项目中还存在其他的解决方案,需将hello解决方案设为“启动项”之后才能进行调试。
右键hello选择“设置为启动项目”
![A8A}W9IC@XY[Z~5[YE00(B.png
这样就可以编译调试了
其实也可以不打开VS

2.3.1 不打开VS的操作

在build目录下先cmake
![T`W{1WCNG[]6$([JPG[JLV.png](https://cdn.nlark.com/yuque/0/2022/png/2762329/1643045920696-eb3de61e-efaf-45d7-be81-a19a106270ad.png#clientId=u91eec2f7-98f9-4&crop=0&crop=0&crop=1&crop=0.5761&from=drop&height=816&id=InuQ6&margin=%5Bobject%20Object%5D&name=T%60W%7B1WCNG%5B%5D6%24%28%5BJPG%5BJLV.png&originHeight=816&originWidth=1223&originalType=binary&ratio=1&rotation=0&showTitle=false&size=89838&status=done&style=none&taskId=u14698f1a-29d1-4fe1-964b-52c844ae8ed&title=&width=1223)
然后开始编译工程(默认Debug模式):
语法:cmake —build

[] [— …]

2.3.2 Debug模式

  1. cmake --build .

~PSD{357C8)BZ2UH2OBQ1VY.png

2.3.3 Release模式

  1. cmake --build . -- /p:Configuration=Release

]PL)N{MSKEXIS$AA513~UOI.png
分别会在debug和release俩个文件夹下生成对应的EXE文件YZKMOU13XZ36G3XJ}G92U5F.pngD7W%$MXZQ}1}`N7)ZU1()09.png074GCYMK5MY`Z%XF55D5{Z8.png
且都可以直接执行

3 cmake-gui

建文件夹如上
Windows下的cmakegui就无脑操作就完事
ZHULUUYF0SC5%R{2PS8N5SK.png
}BW5H1B{HDT5O0~3HY{UT~E.png
到这里就相当于在build文件夹下cmake .. 了,后面的步骤和上面一样
当然也可以点这里,相当于在VS下打开sln文件
JSZ8T)ACL3~USW76VU9}{05.png
附上已经生成了debug和release文件的工程(可将build文件夹全部清空后remake ) :
hello.rar