简介:CodeBlocks 20.03 与 MinGW 的集成安装包,面向 Windows 平台上的 C 语言和 C++ 开发者,以及嵌入式系统学习者,无需复杂配置,解压后即可直接打开使用。压缩包内共包含 2000 个文件,主体为 Python 辅助脚本、C/C++ 头文件与源码(h、hpp、c),另有文本说明及 PDF、DOC 文档,整体大小约 165MB,适合作为完整开发工具链的快速部署方案。该版本对 LVGL 图形库代码提供了良好支持,内置调试工具能够跟踪和检查界面逻辑执行情况,配合 MinGW 的编译器与链接器,可完成从编写、编译到调试的整个流程。丰富的头文件和源码示例有助于理解编译器接口与图形库调用方式,目录结构清晰,便于按需查找。已有 436 人学习或下载,特别适合希望快速搭建环境、减少编译配置困扰的初学者,也适合教师用于课堂演示和嵌入式项目原型验证。 不用装这装那,Code::Blocks 配好MinGW 的 setup 安装包真的是 C/C++ 入门最省心的一条路。我刚接触编程那会儿,光折腾编译器路径就耗掉了一个周末,什么 VS 装完几个 G、什么命令行 gcc 配环境变量,每一步都在劝退新手。所以我看到“codeblock 20.03 mingw setup安装包,直接打开使用即可”这个标题时,第一反应就是:这玩意儿确实值得单独写一篇。它解决的不是“怎么写代码”的问题,而是“怎么让代码跑起来”的问题。这篇博文就围绕这个安装包,把环境搭建、工具链原理、实操过程、常见坑一次讲清楚,不管是完全零基础的新手,还是想换一个轻量 IDE 的老手,都能直接照着操作。
1. 项目概述与环境搭建思路
1.1 为什么偏偏是 Code::Blocks 20.03 + MinGW
先说结论:Code::Blocks 20.03 是官方在 2020 年 3 月发布的稳定版本,虽然不是最新(后面出了 25.03),但它胜在稳定、资源多、网上遇到问题一搜一堆答案。更重要的是,官方提供了一种名为codeblocks-20.03mingw-setup.exe的安装包,它在安装程序里直接捆绑了 MinGW 工具链。这意味着你装完之后,IDE 和编译器是一套的,不需要单独去下载 MinGW、不需要手动配置环境变量、不需要在 IDE 里指点编译器路径——装完打开,写代码,编译,运行,完事。
我帮几个学弟学妹配过环境,凡是让他们自己去下 MinGW 再配 Code::Blocks 的,十有八九会卡在“编译器路径”这一步。要么下载的 MinGW 解压后找不到 bin 目录,要么下的是 64 位版本但 IDE 默认找 32 位路径,折腾半小时心态就崩了。而 mingw 版 setup 安装包直接规避了这个问题,这也是为什么我说它适合“直接打开使用”。
1.2 一键开箱背后:IDE 和编译器到底怎么协作的
很多人会用 IDE,但不太清楚背后发生了什么。打个比方:你写的 C/C++ 代码是人类语言,CPU 只懂机器语言,编译器就是那个“翻译官”。MinGW 全称是 Minimalist GNU for Windows,它把 GNU 编译器套件(GCC 系列)移植到了 Windows 平台上,其中包含 gcc(C 编译器)、g++(C++ 编译器)、gdb(调试器)、make 等一堆工具。
Code::Blocks 是一个集成开发环境(IDE),它负责让你编辑代码、管理项目文件、一键点击“编译运行”按钮。当你按下那个按钮,Code::Blocks 会在后台调用 MinGW 的 gcc/g++ 编译器,把.c或.cpp源码文件编译成.o目标文件,再链接成.exe可执行文件。这个过程对用户是隐藏的,但不代表它不重要。
如果编译器路径没配对,IDE 点“构建”按钮会直接报compiler not found或者弹窗提示“Can't find compiler executable”。反过来,如果 IDE 正常但编译器坏了,你会看到一堆gcc: fatal error: no input files之类的报错。所以理解这层关系,后续排查问题会清晰很多。
2. 工具链本质:MinGW 与编译器选型的关键认知
2.1 MinGW 到底是个什么东西
先说个容易被误解的点:MinGW 不是“一个编译器”,它是一个“工具链”,把 Windows 上开发 C/C++ 所需的一整套 GNU 工具都收进来了。你拿到codeblocks-20.03mingw-setup.exe,这个安装包里的编译器实际上来自 TDM-GCC 项目(一款针对 Windows 平台集成的 GCC 工具链),版本是 GCC 5.1.0。2020 年发布的 IDE 捆绑 2015 年的编译器,听起来有点旧是不是?但实际上对于初学 C/C++、做课程设计、跑数据结构作业来说,完全够用,因为 C/C++ 语言标准(C99/C11/C++11/C++14)在 GCC 5.1.0 里都支持得很好。
这个 20.03 MinGW 版本自带的工具链还包含:
- gcc.exe:编译 C 语言的编译器
- g++.exe:编译 C++ 语言的编译器
- gdb.exe:调试程序用的调试器
- mingw32-make.exe:自动化构建工具
- ar.exe、ld.exe、as.exe 等:链接器、汇编器等后端工具
这些工具默认安装在 Code::Blocks 安装目录下的MinGW子文件夹里,比如C:\Program Files\CodeBlocks\MinGW。这跟单独安装 MinGW-w64 后配置系统环境变量的做法不同的是,Code::Blocks 在启动时会自动检测自身目录下的MinGW/bin,所以不需要用户手动去设置 PATH。
2.2 编译器重不重要:20.03 的编译器视野够不够用
很多人会问,GCC 5.1.0 这么老,是不是什么都编译不了?真不是。我举几个实际例子:学校里常用的 C 语言作业、单链表、二叉树、排序算法、简单的文件读写,这些代码用 C99 标准绰绰有余;C++ 的类、继承、多态、STL 容器,GCC 5.1.0 也都能正常编译运行。就算你想用 C++11 的auto、nullptr、lambda 表达式、智能指针,GCC 5.1.0 也支持。
但如果代码里用了 C++17 的结构化绑定auto [a, b] = pair,或者 C++20 的concept、span这类新特性,GCC 5.1.0 就会编译报错。遇到这种情况,我建议你不需要立刻放弃这个包,而是可以考虑换编译器。不过新手阶段基本碰不到这些高级语法,先把经典语法吃透比追求最新标准重要得多。
还有一个常识要清楚:64 位的 Windows 系统可以运行 32 位程序,所以 Code::Blocks 20.03 自带的 32 位版本 GCC 编译器编译出来的 exe,在 64 位 Windows 10/11 上也能正常运行。只是编译出来的可执行程序本身是 32 位的,地址空间最高 4GB,但一般的学习项目根本不可能用那么多内存,所以毫无压力。
2.3 MinGW 与 MSVC 的区别到底在哪里
很多初学者会看到 msvc、MinGW 这些说法,容易混淆。我直接用表把关键区别列出来:
| 对比项 | MinGW(GCC) | MSVC(Microsoft Visual C++) |
|---|---|---|
| 所属阵营 | GNU 开源社区 | 微软 |
| 常见 IDE | Code::Blocks、Dev-C++、VS Code(需配置) | Visual Studio |
| 编译器名称 | gcc.exe / g++.exe | cl.exe |
| 标准支持 | 更新快,对 C/C++ 标准支持广 | 对 Windows API 有天然优化 |
| 调试器 | GDB | Visual Studio Debugger |
| 体积 | 轻量,几百 MB | 动辄几个 GB 到十几 GB |
| 特色 | 跨平台、开源、适合学习 | 商业 IDE 集成度高、适合 Windows 原生开发 |
近两年 Visual Studio 2022 也可以配置 MinGW 编译器进行编译,但在 VS2022 里新建 C++ 项目时默认还是用 MSVC 的 cl.exe。MSVC 和 MinGW 编译出来的二进制文件格式不完全兼容,所以你要是拿到一个别人用 MinGW 编出来的.a静态库,塞进 MSVC 项目里经常会链接失败。反过来也一样,MSVC 编出来的.lib文件拿到 MinGW 下也用不了。这个知识点对后续做项目、用第三方库非常重要。
3. 实操全过程:从安装到第一行代码跑起来
3.1 安装步骤与关键勾选
下载时一定要认准文件名中带mingw字样的那个版本,比如codeblocks-20.03mingw-setup.exe。如果下成了codeblocks-20.03-setup.exe(不带 mingw),里面就只有 IDE,没有编译器,那就真的不能“直接打开使用”了。安装过程本身没什么坑,但我建议注意几个点:
- 安装类型选择“Full”完整安装,或者至少在组件勾选时确认 MinGW 相关组件被打勾。
- 安装路径尽量不要带中文和空格,比如直接默认
C:\Program Files\CodeBlocks或改成D:\CodeBlocks。虽然新版对中文路径兼容好了些,但编译器 + 中文路径偶尔会出些稀奇古怪的问题,没必要赌。 - 无需勾选“添加到 PATH”这类选项,因为 mingw 版会自动关联内部编译器。就算不自动关联,也可以在 Code::Blocks 里通过 Settings → Compiler → Global compiler settings → Toolchain executables 里的 Auto-detect 来检测到内部 MinGW。
安装完成后首次启动,Code::Blocks 可能会弹出一个Compilers auto-detection窗口。正常情况下它会自动显示检测到 GNU GCC Compiler,路径指向安装目录下的 MinGW,你直接点 OK 继续即可。如果没弹窗,也可以在菜单栏找 Settings → Compiler,看 Selected compiler 是不是GNU GCC Compiler,然后去 Toolchain executables 里点Auto-detect。
3.2 创建一个 C 语言项目的标准流水线
直接说我的标准操作流程,写 C 就用 C 项目,写 C++ 就用 C++ 项目,别混着来。
- 菜单 File → New → Project,选择
Console application,点 Go。 - 语言选择 C 或者 C++,看你的需求。
- 项目标题随便填,比如
hello,然后选一个存放路径。注意这会自动创建一个同名文件夹,不想要嵌套太深的话直接选一个盘的根目录下某个文件夹即可。 - 编译器那儿保持默认 GNU GCC Compiler,不要改动。Finish 之后,Code::Blocks 会帮你生成一个最基础的 main.c 或 main.cpp,里面已经有一段输出 “Hello world!” 的代码。
- 点工具栏上的黄色齿轮图标(Build)编译,再点绿色播放图标(Run)运行。如果一切正常,会弹出一个控制台窗口,显示 Hello world!。
我见过太多新人在 Build 之后去点 Run,结果提示“It seems that this project has not been built yet. Do you want to build it now?”,选 Yes 就完事了,这不是什么错误,只是提醒你还没编译。
3.3 三个建议在动手前改掉的默认设置
第一个是编译器路径确认。虽然自动检测一般没问题,但你要是换过 MinGW 路径或者移动过安装目录,一定要去 Settings → Compiler → Global compiler settings → Toolchain executables 里核对一下路径。这里面有一个必经操作:在Compiler's installation directory那一栏,点击 Auto-detect,它会自动搜索 Code::Blocks 安装目录下的 MinGW。如果 Auto-detect 没找到,就手动浏览到你的 MinGW 文件夹,例如C:\Program Files\CodeBlocks\MinGW,点 OK 保存。
第二个是编辑器字体和控制台编码。默认字体可能比较小,看代码累,去 Settings → Editor → Font 调大一点。另外,Windows 控制台默认编码对中文的支持不稳定,在程序中输出中文时可能显示乱码,这是 Windows 终端编码(如 GBK/936)与源码编码(如 UTF-8)不一致导致的。想省事,可以在 main 函数里加一句system("chcp 65001");切换终端到 UTF-8 代码页,但更推荐的做法是在项目里统一把源码文件保存成 GBK 编码,或者在输出中文时直接把源码编码保持和终端一致。这个细节碰到了再处理,不常见但不是没有。
第三个是设置断点调试前的 Debug 构建。新手通常只用 Build 和 Run,但调试是一门必修课。工具栏上有红色小“Debug/Continue”按钮,默认情况下需要你先用Build -> Rebuild生成带调试信息的 exe,再点 Debug 启动。Code::Blocks 默认 Release/Debug 两种构建目标,新手不用太纠结,用默认的 Debug 目标就行。只要不切到 Release,边打断点边运行是没问题的。
3.4 用命令行手动编译一次,把原理落在实处
虽说用 IDE 一键编译很省事,但我还是强烈建议新手在命令行里亲手编译一次,特别是遇到 IDE 报错想排查的时候。按Win+R输入cmd,然后cd到你的源码目录,执行:
gcc -o hello.exe hello.c如果提示gcc不是内部或外部命令,说明当前终端里没有 MinGW 的 PATH。你可以这样:
set PATH=C:\Program Files\CodeBlocks\MinGW\bin;%PATH% gcc -o hello.exe hello.c hello.exe这样你会清楚看到命令行的编译过程。IDE 里的 Build 按钮本质上做的就是同一件事,只是把gcc -o 输出 输入这条命令封装起来了。理解这一点,以后遇到任何 IDE 报错,你都能先想到“去命令行跑一遍 gcc 试试”,排查效率直接翻倍。
4. 常见问题与排查心得
4.1 经典报错:编译器找不到、文件路径找不到
新手最容易遇到的报错有两类。第一类是构建时提示Can't find compiler executable in your configured search path,这说明 IDE 没有找到编译器。解决方法就是在 Settings → Compiler → Toolchain executables 里重新 Auto-detect,如果还不行就手动指定到 MinGW 的 bin 目录。第二类报错是运行时报错It seems that this project has not been built yet,这时去点 Build 生成 exe,再 Run 即可。
还有一类更隐蔽的问题:你把源文件放在中文路径下,比如D:\学习\c语言\main.cpp。有些版本的 GCC 对中文路径支持不友好,会出现fatal error: no input files或者找不到头文件。遇到这种情况别纠结,直接把代码文件挪到纯英文路径下,十次里有九次能解决。这是老生常谈,但每次都要有人踩。
4.2 运行窗口一闪而过,代码明明没问题
程序运行完控制台窗口直接关闭,这也是经典问题。原因是你的代码执行完了,控制台没有暂停等待。Code::Blocks 的 Run 按钮按道理会等待按键,但如果双击了 exe 或者从命令行直接运行,窗口就会一闪而过。解决办法有两个:一种是在程序最后加return 0;之前加一句getchar();或者system("pause");,让程序停住等你按键盘。另一种是在 Code::Blocks 里点 Run 而不是自己去双击 exe,因为 IDE 方式的运行会等待程序退出。
有些教材会教加system("pause"),但如果你后面去写 GUI 程序或服务器程序,根本不会用到这个,它只是学习阶段的权宜之计。我更推荐用getchar()配合标准输入实现暂停,可移植性更好。
4.3 中文乱码与 freeglut 等第三方库的补充说明
中文乱码很有迷惑性,代码看着没问题,输出到控制台就是一堆乱码。这主要是因为源码文件保存的编码和 Windows 控制台实际解码的编码不一致。Code::Blocks 默认保存源码可能用 UTF-8,但 Windows 控制台(尤其是旧版)默认用 GBK。最简单的绕过方式是不要在控制台里直接输出中文,改用英文输出;如果必须输出中文,把源码另存为“文件编码为 Windows-1252 或 ANSI”再重新编译,很多场景能解决。
再说说热搜里出现的 freeglut 和 MinGW 的搭配。freeglut 是 OpenGL 工具库 glut 的开源替代品,在做计算机图形学作业时很常用。网上常见的问题是“freeglut mingw 32位版本”。在 20.03 mingw 包中,编译器是 TDM-GCC 32 位,所以你要下载 32 位版本的 freeglut,把freeglut.dll放在 exe 同目录,把freeglut.lib或libfreeglut.a放到 MinGW 的lib目录,freeglut.h等头文件放到include\GL目录,然后在项目的链接设置里加上-lfreeglut。一个常见错误是把 64 位的 dll 放到 32 位程序目录里,运行时会直接报“不是有效的 Win32 应用程序”。
4.4 向 VS Code 迁移时,MinGW 怎么继续使用
很多人学了一阵子之后,听说 VS Code 更好用,于是开始折腾“在 VS Code 中配置 MinGW 64”。这里我再给点建议:VS Code 本身只是一个编辑器,它没有编译器,需要用 MinGW 的 gcc/g++ 来编译代码。你在 Code::Blocks 的 MinGW 目录其实可以继续用,只需要把C:\Program Files\CodeBlocks\MinGW\bin加入系统 PATH,然后在 VS Code 里安装 C/C++ 扩展,配置tasks.json和launch.json,指定编译器路径即可。
一个更省事的思路是去 MinGW-w64 官网下载一个较新的版本,但下载时注意选架构(x86_64 表示 64 位,i686 表示 32 位)、线程模型(posix 或 win32)、异常处理模型(seh 或 dwarf)。新手选x86_64-win32-seh基本够用。配置方式依然是把 bin 目录加入 PATH,再在 VS Code 里设置,核心原理没有任何变化。
5. 一点个人体会
如果是跟着教材或网课学 C/C++,不需要一开始就在 VS Studio 和 MinGW 之间反复横跳。先用 Code::Blocks 20.03 mingw setup 把最基本的“写代码—编译—运行”跑通,把语言本身学到手,之后再根据方向换 IDE 也好、换编译器也好,逻辑是完全相通的。我当年就是从这个包开始的,后来转 VS Code、转 Linux 下的 gcc 都没有太大障碍,因为编译原理和命令行使用方式是共通的。
最后再分享一个小技巧:真的别小看Build log窗口,IDE 下方一旦出现红色报错,不要只看第一行,往下翻一翻通常能找到error:开头的具体提示。那个提示会告诉你是哪个文件哪一行出了问题。善用这个窗口,你排查问题的速度至少快一倍。
本文还有配套的精品资源,点击获取