notepad++运行c++报“系统找不到指定的文件”主因是g++.exe未加入path、路径含空格未加引号或文件未保存;需配置nppexec脚本:cd到当前目录、显式调用带参数的g++、成功后执行pause保持窗口。

Notepad++ 本身不编译也不运行 C++ 代码,它只是调用系统里已安装的 g++.exe;真正决定能不能跑起来的,是 PATH、脚本逻辑和当前工作目录这三处是否对齐。
为什么按 F5 直接报“系统找不到指定的文件”
这不是 Notepad++ 的 bug,而是命令行执行环境没准备好:
-
g++.exe不在系统PATH中:打开 cmd,输g++ --version报错,就说明 MinGW 的bin目录(比如C:\mingw64\bin)没加进环境变量,或加了但没重启 Notepad++ - 路径含空格却没加引号:比如装在
C:\Program Files\MinGW,脚本里写g++ xxx.cpp就会断在Program处——必须写成"C:\Program Files\MinGW\bin\g++.exe" - 没保存文件就点运行:
$(FULL_CURRENT_PATH)是空的,g++收到空参数,直接失败
NppExec 脚本里必须写的三件事
原生「运行 → 运行」只支持单条命令,没法判断编译是否成功就运行。NppExec 脚本才能闭环:
- 第一行写
cd $(CURRENT_DIRECTORY):确保#include "xxx.h"这类相对路径能被正确解析 - 第二行用
g++ -std=c++17 -Wall -Wextra -o "$(NAME_PART).exe" "$(FULL_CURRENT_PATH)":显式指定 C++17 标准、开启全部警告,避免低级错误被忽略 - 第三行加
if $(EXITCODE) == 0 cmd /c "$(NAME_PART).exe":只有编译成功才运行,否则停在错误输出界面,不会静默失败
中文乱码和控制台一闪而过怎么 fix
Windows 控制台默认 GBK 编码,但 Notepad++ 默认存 UTF-8,两者不匹配就乱码;而程序运行完窗口自动关闭,根本看不到输出:
- 源文件必须存为
UTF-8-BOM或ANSI(不是纯 UTF-8),否则std::cout 显示问号 - 编译时加
-fexec-charset=GBK参数,告诉g++输出字符串按 GBK 解释 - 脚本末尾加
pause,或把运行行改成cmd /k "$(NAME_PART).exe"(/k保持窗口打开,/c会立刻关闭)
最常被跳过的其实是保存动作和编码设置——哪怕脚本写得再全,文件没存、编码不对,g++ 拿到的就是乱码字节流,编译器不会报“中文错误”,只会默默生成一个不能正常输出的 exe。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











