目录
[山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省](#山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省)
[vscode (community 版本)版本如下:](#vscode (community 版本)版本如下:)
[cmake 安装包](#cmake 安装包)
[git for window 安装包](#git for window 安装包)
[mingw 编译套件](#mingw 编译套件)
[2,使用git for window命令行执行](#2,使用git for window命令行执行)
[3, 在 vscode 中 配置 cmake, 实现在 vscode 中编译,运行,调试](#3, 在 vscode 中 配置 cmake, 实现在 vscode 中编译,运行,调试)
[1,在 vscode 中下载插件 cmake 和 cmake tools, 如下所示](#1,在 vscode 中下载插件 cmake 和 cmake tools, 如下所示)
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
1,需要的安装软件
vscode (community 版本)版本如下:

下载官网:
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
我下载的如图所示:

备注:
使用蓝色图标的 VSCODE ,这个我没配成功。
vscode 安装后,还需要安装 工作负荷 及 单个组件 如下:




报错1:
CMake Error at CMakeLists.txt:3 (project):
Failed to run MSBuild command:
MSBuild.exe
to get the value of VCTargetsPath:
Configuring incomplete, errors occurred!
如果上面的工作负荷以及单个组件未安装,则会报这个错,
报错2:
CMake Error at C:/opt/ros/melodic/x64/share/catkin/cmake/all.cmake:116 (project):
Failed to run MSBuild command:
MSBuild.exe
to get the value of VCTargetsPath:
Microsoft (R) Build Engine Version 2.0.50727.9031
Microsoft .NET Framework, Version 2.0.50727.9044
Copyright (C) Microsoft Corporation 2005. All rights reserved
E:\Work\share\CMakeFiles\3.10.0\VCTargetsPath.vcxproj(3,13): error MSB4066: 无法识别元素 <ItemGroup> 中的属性"Label"。
如果报上面这个错,则需要添加环境变量(路径根据 MSBuild 的安装位置而定):
E:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin
cmake 安装包
安装完后,要把 相应的 bin 路径添加至 环境变量
下载官网:
点击下图位置下载:

git for window 安装包
安装完后,要把 相应的 bin 路径添加至 环境变量
下载官网:
下载下图中的安装包,一键安装

mingw 编译套件
安装完后,要把 相应的 bin 路径添加至 环境变量
下载路径:
【免费】mingw64.zip_mingw免安装版,mingw64免安装资源-CSDN文库
下载解压后,不需要安装,把 bin 路径添加至 环境变量即可
环境变量添加如下:

2,使用git for window命令行执行
编写相应的 CMakeLists.txt .

新建一个 build 目录,因为在编译过程中会有中间文件,所以在 build 目录下 打开 git for window, 执行以下命令,即可产生适用于 windows 的可执行文件
cmake -G "Visual Studio 17 2022" ..
cmake --build ./ --config Release
build 目录下产生以下文件,在 Release 目录里面,双击 .exe 文件,即可执行

3, 在 vscode 中 配置 cmake, 实现在 vscode 中编译,运行,调试
1,在 vscode 中下载插件 cmake 和 cmake tools, 如下所示

2,创建工程目录如下:
创建 蓝色圆圈内的目录和文件。build 和 .vscode 自动产生。

文件内代码如下:
============== add.h =======================
#ifndef MATH_H
#define MATH_H
int math_add(int a, int b);
#endif
============== add.c =======================
#include <stdio.h>
#include "add.h"
int math_add(int a, int b)
{
return a + b;
}
============== main.c ======================
#include <stdio.h>
#include "add.h"
int main(void)
{
printf("you are perfect!\n");
int ret = math_add(1, 1);
printf("res: %d\n", ret);
return 0;
}
关键是这个 cmakelists.txt, 名字必须是这个,因为执行 cmake 命令会自动查找这个文件执行:
cmake_minimum_required (VERSION 3.10)#规定cmake的最低版本要求
project(Cmake_test)#项目的名称,不一定和你的文件夹名称一样
#set(CMAKE_CXX_COMPILER "g++")#设置c++编译器
set(CMAKE_CXX_COMPILER "gcc")#设置c编译器
include_directories(${PROJECT_SOURCE_DIR}/include)#添加头文件(add.h)的搜索路径
aux_source_directory(./src SrcFiles)#将源文件列表(add.c)写在变量SrcFiles中
aux_source_directory(./ SrcFiles)#将源文件 main.c 列表写在变量SrcFiles中
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)#设置可执行文件输出路径
add_executable(main ${SrcFiles})#设置可执行文件的名称,make之后bin目录下出现main.exe
cmake 配置编译套件:

3,运行
点击运行图标即可运行:

运行界面如下所示:

调试界面如下所示:
调试前鼠标放在下图红点位置,即可添加断点:


4,配置过程碰到的问题
1,报错:undefined reference to `WinMain'
原因:假设把第一个红框位置的代码注释,cmake 找不到 main.c 文件,自然就找不到 main() 函数,所以就报 winmain() 函数未定义。

2,cmake_minimum_required (VERSION 3.10)#规定cmake的最低版本要求
这个版本号低于 安装的 cmake 版本即可
参考文章来源: