专栏文章
解决 g++ 编译器出现 BUG
科技·工程参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miohf3o3
- 此快照首次捕获于
- 2025/12/02 19:15 3 个月前
- 此快照最后确认于
- 2025/12/02 19:15 3 个月前
经常使用
g++.exe 编译器 (并使用 VSCode,Dev-C++ 不包含在内,编译器版本过于古老) 的 OIers 们都知道,g++.exe 在新版本有以下诟病。部分符号指代注意
- 中文,一般指非 ASCII 码的字符,包括 Emoji。
- 系统,一般指 Microsoft Windows 系统,因为 Linux(NOI Linux 2.0/Ubuntu) 等不太可能发生这类问题。
1. 中文路径不 zc
这是主要针对 Windows+VSCode 用户的,因为 Windows 系统默认使用 UTF-16 编码,而传统 MinGW 工具链依赖 ANSI(如 GBK)或未完全适配 UTF-8 路径传递。
一般的,如果你使用的是
But,由于 UTF-8 在系统上广为使用,于是有了这一个选项

然后,点击“更改区域设置”,就会弹出下面的窗口:
把 Beta... 勾选上(不算测试版,因为测了快有 年了。(Windows 7 上好像有,不知道记没记错))
你勾选后,就可以使用中文字符命名路径了。
一般的,如果你使用的是
g++.exe,且路径包含中文,按照说法:你需要把文件夹全部改成英文。But,由于 UTF-8 在系统上广为使用,于是有了这一个选项

然后,点击“更改区域设置”,就会弹出下面的窗口:
把 Beta... 勾选上(不算测试版,因为测了快有 年了。(Windows 7 上好像有,不知道记没记错))你勾选后,就可以使用中文字符命名路径了。
该功能存在一些缺陷
请注意,这个功能不能保证你使用 Emoji 或其他符号转换正确。如果出现了一些乱码程序并且确信自己没有下载过,请重置电脑。
还有,开启了这个选项后,例如 Cat(i)OS(忘名字了)就会运行不正常,输出乱码。(这个只能怪开发者,因为他们没有开发一个合理的 UTF-8版本)
还有,开启了这个选项后,例如 Cat(i)OS(忘名字了)就会运行不正常,输出乱码。(这个只能怪开发者,因为他们没有开发一个合理的 UTF-8版本)
2. 控制台中文乱码
(同上,主要针对 Windows 用户)
在命令行输入这一段:
BASH在命令行输入这一段:
chcp 65001
应该就没有问题了。
功能同样存在部分缺陷
请注意,该功能仅临时使用。请在
profile.ps1(PowerShell 配置文件)添加 chcp 650013. dll 文件丢失
一般的,丢失的是下类三种文件:
libgcc_s_seh-1.dll文件,原因:使用了 SEH 异常(不大有人了解吧)处理的程序但未静态链接 修复:编译时添加这行代码:-static-libgcc -static-libstdc++libstdc++-6.dll文件,原因:运行时依赖,只能重下。libgcc_s_dw2-1.dll文件,使用 DW2 异常(也没什么人了解吧,大概都不怎么用)处理的旧版 MinGW。
你应当这样做
如果你丢失了这些文件,都应当重新下载 MinGW 的编译器。如果出现电脑故障或出现未知程序甚至dll 文件缺失后无法修复,你应当重置电脑!
请不要这样做
(我曾因为这个重置了电脑 次)当然,你可以前往这个(广告巨多)网站下载:DLL 缺失(广告不缺)。请不要从某些“系统之家”“电信下载”之类的网站下载。
| 各种方法的风险 | 评级 | 原因 |
|---|---|---|
| 重新下载 MinGW 的编译器 | 0 | 没有原因,够安全 |
| 包管理器(没用过,但是够安全) | 0 | 没有原因,够安全 |
| 从同版本编译器复制一份 dll 过来 | 1-2 | 可能出现的系统版本不兼容或部分系统组件不兼容。 |
| 从不明网站下载 | 3-5 | 又没告诉你哪一个版本,你怎么知道和你的编译器兼不兼容?非常不推荐! |
4. 结语
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...