Windows系统下C/C++ 环境搭建大全(VS2022+CLION+VSCODE+Eeclipse+Cmake+GoogleTest)一
1.概述:
在windows系统下,有很多的编译器,常用的有VS2022、CLION、MinGW, 而代码编辑器有VS2022、CLION 、VSCODE、Eclipse, 从前面的列举可以看到CLION VS2022 这些软件是编译器和代码编辑结合体,使用起来非常方便,但是如果用于商业开发就会需要付费,因此如果需要免费就会用VSCODE+MinGW 和 Eclipse+MinGW 这种组合。对于商业软件开发对于软件的正确性和健壮性都有严格的要求,因此需要单元测试,特性测试,全链路拉通测试,这些测试就经常需要googletest测试框架,因此又要和编译器、代码编辑器结合在一起,又出现了多种的组合。目前网上有很多的资料,但是都比较分散,希望通过我的学习和理解,将他们汇集起来方便大家查询。
2.环境搭建种类:

3.gitHub 加速软件:
在下载googletest 或者是 MingGW、eclipse 都会访问gitHub网站,这些网站可能存在访问失败,因此需要安装一下github加速软件,方便gitHub网站的访问。
3.1.软件安装:
3.1.1.进入微软商店:

3.1.2.找到该软件

3.1.3.加速 github

4.VS2022的下载和安装:
Visual Studio 2022 (VS2022) 是微软推出的一款功能强大的集成开发环境(IDE),广泛应用于 C++、C#、Python 等多种编程语言的开发。下面是梳理详细的下载和安装步骤。
4.1.访问官方下载页面:
访问 Visual Studio 官方网站https://visualstudio.microsoft.com/zh-hans/downloads/
4.2.选择版本:
推荐下载 Visual Studio 2022 Community(社区版),这个版本对于个人开发者、初学者和小型团队是完全免费。如果需要更多企业级功能,可以选择 Professional 或 Enterprise 版本(这些版本需要付费许可)

4.3.获取安装程序:

4.4.启动安装程序:

4.5.选择安装项目(这里只是C/C++):

4.6.安装完需要进行重启:

5.CLION的下载和安装:
CLion是JetBrains公司开发的跨平台C/C++集成开发环境,拥有智能代码补全、强大的调试工具和丰富的项目管理功能。
5.1.下载方式:
从JetBrains官网进行下载,https://www.jetbrains.com/clion/download/?section=windows

在ARM架构的Windows上安装CLion, 需要使用ARM64的版本,建议下载exe版本
5.2.安装流程:
按照下面步骤操作即可完成CLion的安装。
5.2.1.双击CLion安装包:

5.2.2.CLion安装向导界面,点击【下一步】继续:

5.2.3.设置CLion的安装路径:

5.2.4.设置安装选项:

5.2.5.确认安装信息并开始安装:

5.2.6.等待安装完成:

5.2.7.完成CLion安装

6.Eclipse的下载和安装:
Eclipse只是一个开发环境(IDE),它本身不包含C/C++编译器。要让Eclipse能够编译和运行C/C++代码,你需要单独安装一个编译器。
在Windows上,常见的免费编译器选择有:
MinGW:提供GCC编译器套件,相对轻量。
Cygwin:提供更完整的类Linux环境,包含大量工具,体积较大
对于在Windows下使用Eclipse进行C/C++开发,主要有两种方式:一是直接下载官方预配置好的专用版本,二是为现有的Eclipse安装CDT插件。同时,官方也提供了免安装的压缩包,非常方便。本章节只关注eclipse 编译器安装流动第8章。
总结下载的方式如下:

这里只介绍了最简单第二种方式,就是免安装的压缩文件。
6.1.下载免安装网址:https://www.eclipse.org/downloads/packages/release

6.2.选择C/C++ 开发这个版本

在Windows系统中,你可以通过 任务管理器 > 性能 选项卡查看CPU型号。如果显示的是Intel或AMD的处理器,就选择 x86_64;如果明确提到了骁龙(Snapdragon)或标明了ARM架构,则选择 AArch64。
如果是用于嵌入开发,可以选择

下载时可以选择镜像服务器,注意选择中国

6.3.下载后解压zip
eclipse-cpp-2025-09-R-win32-x86_64.zip
7.7.VSCode的下载和安装:
VSCode本身是一个编辑器,而不是一个集成开发环境(IDE)。它不自带任何语言的编译器或解释器(比如C++的GCC、Python的解释器等)。要编译和运行代码,下面只是介绍该软件的下载和安装。
7.1.**打开VSCode官网 **
https://code.visualstudio.com/

7.2.运行VSCode建立程序VSCodeUserSetup-x64-1.106.2

7.2.1. 点击一下步

7.2.2. 点击安装:

8.MingGW的下载和安装:
在介绍MingGW安装前,先进性了MingGW和Cygwin这两个编译器的区别:
8.1.MingGW和Cygwin的区别:
MinGW(Minimalist GNU for Windows)与Cygwin均是在Windows平台上广泛使用的经典开发工具,二者设计理念迥异,因而适用于不同的开发场景。
8.1.1.定义与目标
MinGW 是一个轻量级的Windows开发工具集,它提供了一套GNU工具(如GCC编译器)和头文件,其核心目标是让开发者能够直接在Windows环境下编写并编译C、C++等程序,并生成不依赖任何第三方运行时库的原生Windows可执行文件。它几乎支持所有Win32 API,致力于提供纯粹的Windows本地开发体验。
Cygwin 则致力于在Windows之上构建一个完整的类UNIX模拟环境。它通过一个名为cygwin1.dll的UNIX模拟层,提供了大量的POSIX API和Linux系统中常见的工具。其主要目标是让为UNIX/Linux编写的源代码,几乎无需修改就能在Windows上重新编译并运行,极大地便利了跨平台应用的移植与开发。
8.1.2.功能与组件
MinGW 的核心是GCC编译器套件以及Windows平台的C/C++运行时库。它专注于编译工作,如果程序仅使用标准C/C++库或Win32 API,使用MinGW编译是最佳选择。
Cygwin 提供了远不止编译器的完整UNIX环境,包括Shell、文件系统、进程管理等大量工具和系统调用。如果程序使用了POSIX API(如进程、信号等),则必须通过Cygwin进行编译。
8.1.3.依赖与兼容性
经 MinGW 编译的程序是标准的Windows可执行文件(如.exe),可以直接在任意Windows系统上运行,无需额外依赖。然而,由于其使用了Win32 API,此类源代码通常无法直接在Linux环境下编译通过。
经 Cygwin 编译的程序在运行时需要依赖其附带的cygwin1.dll文件。这个动态链接库充当了POSIX系统与Windows内核之间的翻译层。优点是,同一份源代码通常只需在Linux环境下重新编译,即可无缝移植运行。
8.1.4.适用场景
MinGW 更适合专注于Windows平台原生应用开发的开发者。它生成的程序运行效率高、依赖少,能深度集成于Windows环境。
Cygwin 则更适合需要在Windows下进行UNIX/Linux环境模拟的开发者,例如执行Shell脚本、使用UNIX工具链,或需要将Linux项目快速移植到Windows平台。
8.1.5.总结
总而言之,MinGW 的精髓在于“原生”,它让开发者能用GNU工具链生成纯粹的Windows程序;而 Cygwin 的精髓在于“兼容”,它在Windows内部创造了一个UNIX环境,以便运行和移植类UNIX软件。选择哪一个,完全取决于您的开发目标是追求Windows原生体验,还是需要UNIX环境的便利性。
8.2. MinGW-w64 下载与版本选择指南:
MinGW-w64 是一个用于创建原生Microsoft Windows应用程序的完整软件开发环境。要获取 MinGW-w64,您可以通过其官方网站或GitHub仓库等渠道下载。
1️⃣ 主要下载渠道
官方网站:访问 MinGW-w64 的官方网站 https://mingw-w64.org 获取官方发布版本。

注意选择Pre-build Toolchains

GitHub仓库:您也可以访问其 GitHub 镜像仓库(例如 https://github.com/mirror/mingw-w64.git)或其他提供预编译构建的页面来下载。

2️⃣ 版本选择详解
在GitHub的Releases页面,您通常会看到多个版本的MinGW-w64构建。选择合适的版本,通常需要了解以下选项的含义,它们决定了工具链的目标环境和特性:
选择维度 可选方案 方案解读与建议
系统架构 i686 / x86_64 i686 通常指32位系统;x86_64 指64位系统。根据您的目标系统位数选择。
线程模型 posix / win32 如果您开发的项目会使用C++标准库中的
异常处理 sjlj / seh / dwarf seh 性能较好,是64位环境的推荐选择;sjlj 兼容性更广,可用于32位环境;dwarf一般用于32位Unix-like系统。
运行时库 ucrt / msvcrt ucrt (Universal C Runtime) 是Windows 10及之后版本推荐的运行时,具有更好的C99支持;msvcrt 则用于兼容更旧的Windows版本。
3️⃣ 压缩格式选择
通常选择 .7z 格式,这种格式压缩率较高,可以节省下载时间和流量。下载后,您需要使用诸如7-Zip等解压软件进行解压。
4️⃣ 后续步骤
将解压后得到的 bin 目录路径(例如 C:\mingw64\bin)

添加到系统的 PATH 环境变量中:

打开命令提示符(cmd),输入 gcc -v 命令。如果成功显示GCC的版本信息,则表明MinGW-w64已经安装配置成功。

9.Cmake的下载和安装:
CMake 是一个开源、跨平台的工具系列,旨在构建、测试和打包软件。CMake 使用简单的独立配置文件来控制软件编译过程。与许多跨平台系统不同,CMake 旨在与原生构建环境结合使用。
1️⃣ 高度可扩展
其架构支持按需扩展,能够持续集成新功能与新平台,以满足日益复杂的构建需求。
2️⃣ 生成原生构建系统
能够生成标准的构建文件(如 Unix 的 Makefile)或原生 IDE 项目(如 Visual Studio 解决方案),从而直接编译源代码、创建库文件并构建可执行文件。
3️⃣ 支持复杂项目结构
可轻松管理具有复杂目录层次结构和多库依赖的大型应用程序,并支持从单一源代码树进行多种配置的并行构建。
4️⃣ 灵活的库构建
全面支持静态库与动态库的构建,为软件架构设计提供了充分的灵活性。
5️⃣ 集成图形化编辑器
能够生成缓存文件,可与 CMake 图形化界面编辑器无缝协作,极大提升了项目配置与管理的效率。
6️⃣ 处理高级依赖关系
能够优雅地处理必须先构建一个中间可执行文件来生成源代码,然后再将此代码编译并链接到最终应用程序中的复杂构建流程。
7️⃣ 统一的构建管理
通过单一的 CMakeLists.txt 配置文件,即可在不同操作系统和编译器上生成对应的原生构建环境,实现了“一次编写,处处构建”。
9.1. 下载cmake
1️⃣ 打开cmake官网 https://cmake.org/download/
2️⃣ 找到Windows安装包

9.2. 安装cmake流程
1️⃣ 双击下载的cmake-xxx-win64-x64.msi文件,点击Next

2️⃣ 勾选 I accept the terms in the License Agreement,然后点击Next

3️⃣ 必须勾选 Add CMake to the PATH environment variable(添加环境变量,否则后续需手动添加)Add CMake shortcut totheDesktop(在桌面添加快捷方式)可根据个人需求选择

4️⃣ 选择安装路径,可以选择默认路径,也可像我一样安装至D盘或E盘等非系统盘。

5️⃣ 点击Install开始安装

6️⃣ 点击Finish安装完成。

9.3. 验证cmake是否安装成功
1️⃣按Win+R,输入cmd,回车,然后输入:cmake --version

2️⃣如果 正确安装,会显示类似以下输出:

10.googleTest的下载和安装:
10.1 googletest 概述
GoogleTest 是由 Google 测试技术团队开发的一款强大测试框架,专为 C++/c 代码设计,具备出色的跨平台支持——无论您是在 Linux、Windows 还是 macOS 环境下工作,它都能为您提供一致的测试体验。
该框架用途广泛,不仅适用于单元测试,也能胜任集成测试、特性测试等多种测试场景。其核心价值在于,您所编写的测试用例可以被反复、自动化地执行,这一特性使其非常契合现代持续集成(CI)流程。
一个典型的应用场景是代码重构:假设您编写了一个函数,并为其设计了一套覆盖多种输入输出情况的测试用例。当其他开发者尝试重构该函数时,他们必须保证所有原有测试用例都能通过,才能认为重构在基本逻辑上没有引入回归问题。当然,通过测试并不意味着代码百分之百正确,但它为代码行为的正确性提供了关键保障,大大降低了修改引入未知错误的风险。
10.2 googletest 的核心功能:
1️⃣ 断言支持:通过丰富的断言宏(如 EXPECT_EQ、EXPECT_TRUE 等)验证测试结果。
2️⃣ 测试夹具:支持共享测试设置和清理代码,减少重复代码。
3️⃣ 参数化测试:允许使用不同参数运行相同的测试逻辑。
4️⃣ 死亡测试:验证程序是否按预期方式终止。
5️⃣ 跨平台支持:兼容多种操作系统。
6️⃣ 与构建工具集成:支持与 CMake 和 Bazel 等构建系统无缝集成。
10.3 googletest下载:
1️⃣ 从官网下载:https://github.com/google/googletest
官网给出了源代码和编译脚本,特别需要注意,编译器的约束The 1.17.x branch requires at least C++17.

2️⃣ 通过git 下载源代码


10.4 使用cmake进行编译
1️⃣ 需要注意的点:googletest要求CMake使用3.14以后版本,因为后面用到FetchContent_MakeAvailable()命令;
2️⃣ googletest要求使用C++14以后版本,才能成功编译;
3️⃣ 用MSVC预编译googletest得到的静态链接库文件(.lib),MinGW不能进行静态链接(MinGW支持.a). 需要在QT中使用MSVC编译器(即始终用同一种编译器),或者预编译得到动态链接库文件(.dll,MinGW也支持),亦或在自己项目中用源码编译googletest;
4️⃣ 预编译得到的库文件,x64 or x32, debug or release 配置,必须跟自己项目生成的目标保持一致.
10.4.1 使用cmake-gui 进行编译
10.4.1.1 使用MingGW 编译
1️⃣ 建立build目录:
需要注意build目录,可以分编译器,因为要看自己项目使用哪些编译器,googletest就用那个编译器进行编译
MingGW:

2️⃣ 配置cmake相关参数:





3️⃣ 用CLion 编译googletest 库




10.4.1.2 使用VS2022 编译
1️⃣ 建立build目录:
VS2022:

2️⃣ 配置cmake相关参数:



3️⃣ 用VS2022 编译googletest 库



11. GoogleTest 搭建的总体思想:
搭建GoogleTest环境的过程,正是上述设计思想的实践。其思想是:
1️⃣ 隔离与依赖管理
思想:将测试代码与业务代码清晰地分离开。测试代码依赖于业务代码和GoogleTest库。
体现:在项目中建立一个独立的目录(例如可以起test)来存放所有测试代码。使用现代的cmake构建系统来清晰地管理这种依赖关系。
2️⃣“链接时”集成
思想:将GoogleTest编译成一个库(静态库或动态库),然后让你的测试程序链接这个库。
体现:经典的cmake配置流程:
1.FetchContent或add_subdirectory获取googletest源码
2.target_link_libraries(your_test_target GTest::gtest_main)。gtest_main库提供了一个默认的main函数,让你无需自己编写。
12.VS2022+googleTest+Cmake环境搭建:
12.1 VS2022的cmake环境搭建:
Visual Studio 2022 版本 17.1 预览版 2 开始,如果顶级 CMakeLists.txt 存在于子文件夹中,而不是工作区根目录中,系统会提示你是否要启用 CMake 集成。
这里使用一个用例进行讲解,假设都这样一个目录:D:\hello_world,目录中内容如下

main.cpp
#include<iostream>
#include "foo.h"
int main()
{
std::cout << "Hello World!\n";
foo();
return 0;
}
foo.h
void foo();
foo.cpp
#include <iostream>
#include "foo.h"
void foo()
{
std::cout << "Hello World!\n";
}
12.1.1 使用vs2022 打开cmake 组织的project:
1️⃣通过选择打开本地文件夹:

2️⃣通过输出窗口判断cmake的配置阶段是否成功:
成功示例:

失败的示例:如果失败了需要你去修改相应的cmakelists.txt 文件:

3️⃣解决方案视图切换

4️⃣编译

13.CLION+googleTest+Cmake环境搭建:
13.1 CLION的cmake环境搭建:
CMake 是项目的"构建说明书",而 CLion 是"智能编辑器+构建执行器"。它们共同为 C/C++ 开发提供了高效、跨平台的解决方案,在CLion 中,你通常直接编辑 CMakeLists.txt 文件来管理项目配置,然后 CLion 会根据该文件重新加载项目。你也可以在 CLion 的图形界面中修改一些 CMake 选项,但最终这些更改都会反映到 CMakeLists.txt 文件中。需要注意的是,虽然 CLion 默认使用 CMake,但它也支持其他构建系统(如 Bazel、Gradle 等),但 CMake 是其中集成得最好的。
13.1.1 使用cmake进行配置和编译:
这里使用一个用例进行讲解,假设都这样一个目录:D:\hello_world,目录中内容如下

main.cpp
#include<iostream>
#include "foo.h"
int main()
{
std::cout << "Hello World!\n";
foo();
return 0;
}
foo.h
void foo();
foo.cpp
#include <iostream>
#include "foo.h"
void foo()
{
std::cout << "Hello World!\n";
}
13.1.1.1 通过cmake进行配置打开project:

13.1.1.2 通过Project Wizard进行窗口配置:
1️⃣ 配置版本类型:

2️⃣ 配置编译环境:
选择使用什么编译器进行编译:

ToolChain 配置:

选择makefile类型:
选定ToolChain,Generator范围是受限的

cmake 配置成功:

13.1.1.2 使用clion build 菜单进行编译:

14.VSCode+googleTest+Cmake+MingGW:
14.1 VSCode的cmake环境搭建:
14.1.1 VSCode 需要下载的cmake 插件:
主要有两款核心插件:CMake Tools和CMake Language Suppor。
14.1.2 使用cmake进行配置和编译:
这里使用一个用例进行讲解,假设都这样一个目录:D:\hello_world,目录中内容如下

main.cpp
#include<iostream>
#include "foo.h"
int main()
{
std::cout << "Hello World!\n";
foo();
return 0;
}
foo.h
void foo();
foo.cpp
#include <iostream>
#include "foo.h"
void foo()
{
std::cout << "Hello World!\n";
}
14.1.2.1 使用cmake进行配置:
- 使用Ctrl+Shitf+P
![image]()
- 选择相关编译器:
1️⃣本次选择的:mingw64
![image]()
2️⃣选择完成后,cmake会完成配置:
![image]()
3️⃣选择完成后,cmake会完成build:
![image]()
4️⃣cmake build成功后:
![image]()
14.2 VSCode的中使用googletest搭建测试环境:
参见系列文章2。
15.Eclipse+googleTest+Cmake+MingGW:
15.1 Eclipse的cmake环境搭建:
Eclipse的cmake环境搭建主要分成两步,第一步就是通过windows的命令窗口,生成eclispe project;第二步通过import命令打开该project。这里使用一个用例进行讲解,假设都这样一个目录:D:\hello_world,目录中内容如下

main.cpp
#include<iostream>
#include "foo.h"
int main()
{
std::cout << "Hello World!\n";
foo();
return 0;
}
foo.h
void foo();
foo.cpp
#include <iostream>
#include "foo.h"
void foo()
{
std::cout << "Hello World!\n";
}
1️⃣通过windows的命令窗口生成eclispe projec

2️⃣通过import命令打开该project:


3️⃣通过project菜单的build命令进编译:







浙公网安备 33010602011771号