windows 窗口制造商-制造商(e=2):系统找不到指定的文件

pkln4tw6  于 2023-01-18  发布在  Windows
关注(0)|答案(1)|浏览(361)

我正在Windows上使用C++ SFML库和Visual Studio代码。clean目标导致显示错误消息,我想知道发生了什么以及如何修复它。此特定项目只是我的安装项目,以确保工作正常。我的工作目录如下所示:

TEST
    Main.cpp
    Makefile

我的Makefile如下,我使用的是mingw 32-make。它创建了Main.o和Main.exe。对于我的问题,你可以忽略大多数事情,我的问题是关于干净的目标。

# Makefile for static linking.

CXX = g++
CXXFLAGS = 
EXE = Main
OBJ = Main.o
MODULES = -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lfreetype -lwinmm -lgdi32 -mwindows
HEADERS = -IC:\SFML\include -DSFML_STATIC
LIBRARIES = -LC:\SFML\lib

$(EXE): $(OBJ)
    $(CXX) $(CXXFLAGS) -o $(EXE) $(OBJ) $(LIBRARIES) $(MODULES)
Main.o: Main.cpp
    $(CXX) $(CXXFLAGS) -c Main.cpp -o Main.o $(HEADERS)

clean:
    rm $(EXE) $(OBJ)

我能够编译和运行程序,但当我做干净的目标,我得到以下错误消息。

rm Main Main.o
process_begin: CreateProcess(NULL, rm Main Main.o, ...) failed.
make (e=2): The system cannot find the file specified.
mingw32-make: *** [Makefile:17: clean] Error 2

我想问题可能是“.exe”文件扩展名不存在,因为如果我手动输入“rm Main”,我会收到另一条错误消息。

rm : Cannot find path 'C:\Users\Benjamin\PROGRAMMING_PROJECTS\CPP_PROJECTS\SFML_VSCode\TestNoCMake\Main' because it does not exist.
At line:1 char:1
+ rm Main
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Benjam...estNoCMake\Main:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

但是如果我把它改为“rm Main.exe”,它会成功地删除文件。看到这一点后,我试着编辑我的Makefile,让它包含“.exe”。

clean
    rm $(EXE).exe $(OBJ)

但是,我还是得到了第一张照片中的图像。
为什么会发生这种情况?我该如何解决?
我看到了一些关于这个错误的问题,但它们没有帮助。我的设置也是基于这个youtube教程(https://www.youtube.com/watch?v=rZE700aaT5I&t=96s),视频中的人没有这个问题。但是,他的教程没有包括安装MinGW和make的部分,所以可能他的和我的是不同的,它导致了这个问题。

ztyzrc3y

ztyzrc3y1#

您看到的错误是因为找不到rm程序。找不到rm是因为rm是一个POSIX工具,而您运行的是Windows。Windows上的GNU Make程序可以用各种不同的方式构建,但您构建它的方式意味着当它要运行shell脚本时,它会调用Windows cmd.exe作为它的shell。
您显示的“手动”运行命令的输出显示您是从PowerShell运行它的,而不是从cmd.exe,所以这可能是您看到不同行为的原因。
如果要编写使用POSIX工具的makefile,可能需要研究PATH变量,并确保POSIX工具出现在PATH上的某个目录中。
我还应该提到,在编写makefile时,你总是希望使用正斜杠(/),而在编写路径名时,永远不要使用反斜杠。

相关问题