新闻详情

新闻详情

首页 / 资讯中心 / 详情

Windows上配置C/C++开发环境(GCC与CMake)

发布时间:2026/9/1 9:36:08来源:尧图网络
Windows上配置C/C++开发环境(GCC与CMake)
开发工具C/C与其他语言不同的一点是它的语言标准制定与实现是分离的C/C语言标准都是由ISO国际标准化组织与IEC国际电工委员会制定的而其它语言比如Java、Python的标准是由某个具体的公司或组织制定的Java由Oracle公司主导Python由Python软件基金会主导。说那么多是因为语言标准的制定与实现的分离带来了一个问题那就是C/C有多个编译器主流的有GCC、Clang、MSVC还有像Intel C、Nvidia nvcc之类的编译器更糟糕的是它们的编译产物并不兼容因为它们各自实现了一套标准库。所以说不同的编译器选择配置开发环境的步骤也不一样因为历史原因GCC更倾向于GNU/Linux生态Clang好像在macOS用的比较多MSVC是微软的当然绑定Windows。不过GCC与Clang都是跨平台的Windows上也能用。所以接下来以GCC为例介绍一下如何在Windows上配置GCC的开发环境。MinGWMinGW是面向Windows的极简GNU工具集把GCC移植到了Windows上有两种方式可以获得方案一Github在预编译二进制仓库的Release页面可以直接获取已经编译好的工具链打开它你能看到很多文件根据下面的表格选择合适的就行i68632位系统x86_6464位系统posixposix线程标准win32win32线程mcf轻量精简线程模型dwarf适用于32位的异常模型sehWindows结构化异常处理msvcrt旧版C运行时ucrt通用C运行时下载下来之后解压的你喜欢的位置然后打开设置-系统-关于-高级系统设置会弹出UAC选择是就能进入系统属性-高级窗口然后打开环境变量当然另一种办法是每次都通过完整路径调用gcc这样如果你需要安装多个gcc就不会冲突接下来这个窗口分为用户级与系统级两部分如果你的电脑是多用户且希望所有用户都能共享同一份GCC那就选择系统级否则选择用户级。找到一个叫Path选择编辑然后新建然后在新的一项哪里粘贴你的MinGW的bin文件夹的完整路径。方案二使用MSYS2另一种更简单的方法是从MSYS2安装MSYS2是一个强大的包管理器可以安装很多库只需打开网站选择msys2-x86_64-20260322.exe点击下载即可。运行会弹出安装界面选择一个你希望的路径然后安装就行。尽量不要选择Program Files与Program Files (x86)这两个路径受系统保护如果你需要频繁通过MSYS2安装库每次都会弹出UAC窗口比较烦人接下来在开始菜单或者安装路径打开UCRT64MSYS2使用和Arch Linux一样的包管理器pacman如果你用过Arch Linux那就能很快上手反过来也一样。输入pacman -Syu会同步最新版库的索引然后弹出是否下载输入y按回车就行一般来说安装完成后会问你是否重启输入y再打开就完成了”系统更新“因为Arch Linux是滚动发行版MSYS2也一样可以通过pacman给自己升级然后再输入一遍pacman -Syu就会开始更新其它库因为上一次更新的是”系统库“结束后输入pacman -S mingw-w64-ucrt-x86_64-toolchain会弹出很多库默认全选即可然后安装安装结束后输入g --version如果输出一长串东西 就安装成功了。接着只要像方案一一样加入环境变量即可注意MSYS2的部分库会自动安装python如果你系统也安装了python可能会调用错误的python需要调整环境变量的顺序构建工具这样就算是完成了安装但是接下来还有个问题那就是对于一个几十万上百万行的项目它的构建流程可能非常复杂而且需要引入各种外部库这个时候直接调用gcc进行构建就显得很麻烦所以需要构建工具。用的很广泛的构建工具就是CMake了在下载页面找到你需要的版本进行安装即可。如果你下载的是Installer.msi文件那么它应该会自动加入环境变量如果没有就按照上面的方法配置环境变量。当然另一种方法是通过MSYS2安装只需要输入pacman -S ucrt64/mingw-w64-ucrt-x86_64-cmake ucrt64/mingw-w64-ucrt-x86_64-cmake-gui就会安装CMake和CMake的GUI界面GUI界面相对于命令行来说更加容易上手。使用CMake现代CMake引入了CMakePresets.json虽然不是必须的但是可以用来统一配置以下是一个简单的示例{ version: 6, configurePresets: [ { name: debug, displayName: Debug, description: Debug build configuration, generator: Ninja, binaryDir: ${sourceDir}/build/debug, cacheVariables: { CMAKE_BUILD_TYPE: Debug } } ], buildPresets: [ { name: debug, configurePreset: debug } ] }注意我这里用的构建工具是Ninja如果你也想用Ninja请在MSYS2里执行pacman -S ucrt64/mingw-w64-ucrt-x86_64-ninja。使用CMake必须要的就是CMakeLists.txt文件它用来描述你所希望的构建流程。顶层必须有一行cmake_minimum_required(VERSION 3.30)指定了CMake的最低版本。第二行是project(HelloWorld)它指定了项目的名称。cmake_minimum_required(VERSION 3.30) project(HelloWorld)这就是一个最简单的CMake项目示例虽然什么都不会执行。更多内容可以参考官方文档。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从晶体管到计算机:揭秘逻辑门如何构建计算与记忆系统 2026/9/1 23:23:20

从晶体管到计算机:揭秘逻辑门如何构建计算与记忆系统

你是否曾好奇,一台能运行复杂程序的计算机,其最底层的基石究竟是什么?是CPU、内存,还是操作系统?一个流传甚广的简化说法是:“计算机就是由无数个逻辑门组成的”。这句话听起来很酷,但它也带来了…

阅读更多 →
chrome-devtools-mcp:给AI编程助手装上真实浏览器的“眼睛” 2026/9/1 23:23:20

chrome-devtools-mcp:给AI编程助手装上真实浏览器的“眼睛”

如果你正在用 AI 编程助手改代码、写单测,却总觉得“调试前端时 AI 帮不上忙”,那问题大概率不在模型能力,而在信息入口。现在的 AI 编程工具基本能理解代码、生成 diff,但遇到“页面为什么白屏”“接口数据为什么没渲染”“这个按…

阅读更多 →
杰文斯悖论视角下的AI降价:用量暴涨与成本管理策略 2026/9/1 23:23:20

杰文斯悖论视角下的AI降价:用量暴涨与成本管理策略

当“GPT 5.6 降价引爆 13.8 倍用量”这条消息出现在讨论区时,很多人第一眼看到的是“降价”,第二眼看到的是“13.8倍”。但我更建议把这两个词放在一起读:单位价格下降,总用量反而暴涨,最终总支出可能没有下降&#xf…

阅读更多 →
基于YOLOv8的高速公路抛洒物检测工具包实战解析 2026/9/1 23:23:20

基于YOLOv8的高速公路抛洒物检测工具包实战解析

简介:一套基于YOLOv8的高速公路路面抛洒物实时检测工具包,面向交通目标检测方向的学生与开发者,重点解决抛洒物识别与可视化演示需求,可应用于高速公路巡养、智慧交通等实际场景。压缩包共11个文件,包含3个Python脚本、…

阅读更多 →
南京矢量数据包全解析:SHP格式处理与坐标系转换实战 2026/9/1 23:23:20

南京矢量数据包全解析:SHP格式处理与坐标系转换实战

简介:这是一份覆盖南京市全域的GIS矢量数据资源包,内含市、区、县、镇、村多级行政边界,完整收录国道、省道、县道、高速、地铁轻轨、铁路及乡村道路等线状交通要素,同步整合水系、绿地、岛屿等自然地理底图,并集成公交…

阅读更多 →
SeaTunnel (Zeta引擎)与SeaTunnel (Spark/Flink引擎)有啥区别,哪个性能更优 2026/9/1 23:20:18

SeaTunnel (Zeta引擎)与SeaTunnel (Spark/Flink引擎)有啥区别,哪个性能更优

SeaTunnel (Zeta引擎)与SeaTunnel (Spark/Flink引擎)有啥区别,哪个性能更优SeaTunnel 是“数据集成框架”,Zeta/Flink/Spark 是它可以使用的不同“执行引擎”。 对你目前这种 MySQL CDC → MySQL、实时同步、多表同步 场景,我更推荐 SeaTunne…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞