必须先验证g++ -v在cmd中能输出版本信息,再配置nppexec脚本:cd $(current_directory)、g++ -mconsole -std=c++17 -o "$(name_part).exe" "$(full_current_path)"、if $(exitcode)==0 "$(name_part).exe)" endif,且文件须为utf-8无bom编码并已保存。

确认 MinGW 已正确安装并可用
Notepad++ 本身不编译代码,它只是调用外部 g++。所以第一步不是打开 Notepad++,而是验证系统能否在任意位置执行 g++ -v:
- 打开
cmd或PowerShell,输入g++ -v,回车 —— 必须看到版本信息,否则后续全无效 - 若提示“不是内部或外部命令”,说明
MinGW\bin(如C:\MinGW\bin)没加进系统PATH,或加了但 Notepad++ 没重启(它启动时只读一次环境变量) - 路径含空格(比如
C:\Program Files\MinGW)极易出错,建议装到无空格路径,如C:\mingw64\bin
用 NppExec 插件写一条可靠编译+运行脚本
原生「运行 → 运行」(F5)只能执行单条命令,无法判断编译是否成功就直接运行,容易报错后还去执行残缺的 .exe。必须用 NppExec(新版 Notepad++ 自带,若没有请通过插件管理器安装):
- 按
F6打开 NppExec 控制台,粘贴以下内容(注意每行独立):
cd $(CURRENT_DIRECTORY)
g++ -mconsole -std=c++17 -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)"
if $(EXITCODE) == 0
"$(NAME_PART).exe"
endif
-mconsole 是关键:避免出现 undefined reference to `WinMain' 错误(Windows 默认按 GUI 子系统链接,而你写的是控制台 main())$(CURRENT_DIRECTORY) 确保工作目录与源文件一致,#include "xxx.h" 等相对路径才有效run_cpp,再通过 Plugins → NppExec → Advanced Options 添加到菜单,并绑定快捷键(如 F5)文件编码和保存是硬性前提
哪怕脚本完全正确,以下两点任一不满足,都会导致编译失败或输出乱码:
- 源文件必须是
UTF-8 无 BOM编码(Notepad++ 状态栏右下角查看,若显示 “UTF-8-BOM” 或 “ANSI”,需转成 “UTF-8”) - 必须先保存文件(
Ctrl+S),不能直接运行未保存的缓冲区 ——$(FULL_CURRENT_PATH)变量依赖真实路径,未保存时为空或临时路径 - 文件名不能含中文或特殊符号(如
测试.cpp、hello world.cpp),推荐纯英文+下划线,如main.cpp
常见错误现象与对应检查点
遇到报错别急着重配,先看错误类型再定位:
-
系统找不到指定的文件→ 检查g++是否在PATH中,Notepad++ 是否重启过 -
undefined reference to `WinMain'→ 脚本里漏了-mconsole,或用了#include <windows.h></windows.h>却没实现WinMain - 编译通过但黑框一闪退出 →
main()结尾没加system("pause")或getchar(),或脚本里漏了PAUSE类逻辑 - 中文输出乱码 → 文件编码不是
UTF-8 无 BOM,或没在脚本开头加chcp 65001(可加在cd后第一行)
真正麻烦的从来不是配置步骤,而是路径、编码、保存状态这三处细节没对齐。每次出问题,优先盯住它们。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











