Windows下用g++运行Makefile时出现Error 127问题求助
问题描述
- 刚接触命令行,需编译运行2007年发布的LATTICEEASY模拟程序,已将程序解压到
latticeeasy2.1目录,所有.cpp、.h文件与Makefile在同一目录 - 已安装Windows版g++编译器并配置系统路径,CMD中运行
g++ --version/gcc --version可正常识别,但MinGW64 Shell中提示-bash: g++: command not found - 通过MinGW64 Shell的
start命令打开CMD,切换到程序目录执行make时出现以下错误:
C:\Users\Letícia\Downloads\latticeeasy2.1>make g++ -c -O3 ffteasy.cpp make: g++: No such file or directory make: *** [Makefile:13: ffteasy.o] Error 127
- 尝试将程序文件复制到MinGW目录,问题依旧
现有Makefile内容
COMPILER = g++ FLAGS = -O3 all: latticeeasy.h model.h parameters.h ffteasy.o latticeeasy.o evolution.o initialize.o output.o $(COMPILER) $(FLAGS) ffteasy.o latticeeasy.o evolution.o initialize.o output.o -lm -o latticeeasy clean: rm -f *.o out output.txt latticeeasy *~ *.dat core* cleaner: rm -f *.o out output.txt latticeeasy *~ *.dat *.img ffteasy.o: ffteasy.cpp $(COMPILER) -c $(FLAGS) ffteasy.cpp latticeeasy.o: latticeeasy.cpp latticeeasy.h model.h parameters.h $(COMPILER) -c $(FLAGS) latticeeasy.cpp evolution.o: evolution.cpp latticeeasy.h model.h parameters.h $(COMPILER) -c $(FLAGS) evolution.cpp initialize.o: initialize.cpp latticeeasy.h model.h parameters.h $(COMPILER) -c $(FLAGS) initialize.cpp output.o: output.cpp latticeeasy.h model.h parameters.h $(COMPILER) -c $(FLAGS) output.cpp
解决方案建议
修复MinGW Shell环境变量
- 确认MinGW的
bin目录(如C:\mingw64\bin)已添加到系统级PATH环境变量(而非仅用户级) - 关闭所有终端窗口(CMD、MinGW Shell)后重新打开,测试
g++ --version是否能在MinGW Shell中正常识别 - 若临时需要生效,可在MinGW Shell中执行:
export PATH=$PATH:/c/mingw64/bin(替换为你的MinGW实际安装路径)
- 确认MinGW的
修改Makefile适配Windows环境
- 直接指定g++的完整路径,将Makefile第一行改为:
COMPILER = C:\mingw64\bin\g++.exe - 确认Makefile中所有编译命令前的缩进是Tab键(Windows下make要求用Tab而非空格缩进,否则会报错)
- 移除链接命令中的
-lm参数:Windows下标准库无需手动链接libm,这是Linux/Unix平台的写法
- 直接指定g++的完整路径,将Makefile第一行改为:
直接在CMD中编译
- 确保CMD中能识别
make命令(若未安装,可将MinGW版make程序放到MinGW的bin目录) - 直接打开CMD,切换到
latticeeasy2.1目录后执行make即可
- 确保CMD中能识别
内容的提问来源于stack exchange,提问作者Letícia Maranhão
相关产品推荐
相关产品推荐

