概述
在windows上使用cmake编译C/C++程序时,首先需要CMake,安装gcc/g++编译环境,然后使用VSCode 以及配置下CMakelist.txt。
CMake是什么
你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。
CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等。
一般使用 CMake 生成 Makefile 并编译的流程如下:
- 编写 CMake 配置文件 CMakeLists.txt
- 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(ccmake 和 cmake 的 区别在于前者提供了一个交互式的界面),其中, PATH 是 CMakeLists.txt 所在的目录
- 使用 make 命令进行编译
准备
1.VSCode (需要安装以下插件)
C/C++
C++ Intellisense
CMake
CMake tools
CMake Tools Helper
2.MinGW,安装教程参考【传送门】
3.CMake
安装CMake
下载链接:https://cmake.org/download/
尽量选择Latest Release版本,比较稳定。
如图中推荐所示,下载后缀为.msi的安装文件,然后直接安装。
傻瓜式点击鼠标就能安装。安装过程记得勾选把cmake添加到环境变量。
验证安装成功
在命令行 输入如下指令
cmake -version
如下所示,给出一些基本信息,说明安装正常。
VSCode中配置CMake
一般刚安装CMake插件后 会自动提示你选择一个编译工具链,如果没有提示或者想更换其他编译工具链,那么可以通过ctrl+shifl+p,输入以下指令,然后在弹出框中选择自己安装的编译工具链。
CMake:Select a Kit
CMake使用
现在我们建立一个目录,结构如下:
.
├── Build
├── CMakeLists.txt
└── main.c
其中main.c的代码如下:
#include <stdio.h>
int main()
{
printf("%d\n", 100);
return 0;
}
为了编译这个文件,我们编辑CMakeLists.txt文件为:
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
#项目名称, 参数值是 main, 该命令表示项目的名称是 main
project(main)
# 目标程序名
aux_source_directory(. DIR_TOOT_SRCS)
# 显示指定使用的C编译器
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
# 指定生成目标
add_executable(${PROJECT_NAME} ${DIR_TOOT_SRCS})
然后进入Build目录,执行cmake
cd Build/
cmake -G "MinGW Makefiles" ..
# 或者cmake -G "Unix Makefiles" ..
输出结果如下,并且在Build文件夹产生了很多文件,并且包括Makefile文件。
Build文件夹中包含的文件
此时,我们使用make
命令,就能编译我们的程序了。
最后运行一下试试,结果正常。