如何修复 "make (e=2): The system cannot find the file specified."
How to fix "make (e=2): The system cannot find the file specified."
我想使用 mingW32_make.exe 在命令提示符下编译 C 代码。错误信息显示
rm -f obj/*.o
process_begin: CreateProcess(NULL, rm -f obj/*.o, ...) failed.
make (e=2): The system cannot find the file specified.
makefile:11: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2
makefile 如下所示
CC=gcc
INC_DIR=../include
LIBS=-lregex
ODIR=obj
_OBJ=main.o BVPA.o BVPA-cube.o BVPA-cif.o BVPA-hk.o BVPA-path.o BVPA-math.o BVPA-cmd.o BVPA-gui.o BVPA-vesta.o MT19937AR.o
OBJ=$(patsubst %,$(ODIR)/%,$(_OBJ))
TARGET=../bin/BVPA_win.exe
CFLAGS=-I$(INC_DIR) -Wall -g
all: $(TARGET)
rm -f $(ODIR)/*.o
$(TARGET): $(OBJ)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
$(ODIR)/%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -f $(ODIR)/*.o
'''
我遇到了同样的问题,这是解决方法。原因来自其他人的评论:
Windows does not understand rm
.
当您 运行 make clean 时,它将清除所有 .o
个文件。
清洁:
del *.o
这个问题的答案其实很简单。当前目录中没有 obj 文件夹,因此编译器不知道在哪里添加或删除。您只需 在您的源代码目录中添加一个 obj 文件夹。
我想使用 mingW32_make.exe 在命令提示符下编译 C 代码。错误信息显示
rm -f obj/*.o
process_begin: CreateProcess(NULL, rm -f obj/*.o, ...) failed.
make (e=2): The system cannot find the file specified.
makefile:11: recipe for target 'all' failed
mingw32-make.exe: *** [all] Error 2
makefile 如下所示
CC=gcc
INC_DIR=../include
LIBS=-lregex
ODIR=obj
_OBJ=main.o BVPA.o BVPA-cube.o BVPA-cif.o BVPA-hk.o BVPA-path.o BVPA-math.o BVPA-cmd.o BVPA-gui.o BVPA-vesta.o MT19937AR.o
OBJ=$(patsubst %,$(ODIR)/%,$(_OBJ))
TARGET=../bin/BVPA_win.exe
CFLAGS=-I$(INC_DIR) -Wall -g
all: $(TARGET)
rm -f $(ODIR)/*.o
$(TARGET): $(OBJ)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
$(ODIR)/%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -f $(ODIR)/*.o
'''
我遇到了同样的问题,这是解决方法。原因来自其他人的评论:
Windows does not understand
rm
.
当您 运行 make clean 时,它将清除所有 .o
个文件。
清洁:
del *.o
这个问题的答案其实很简单。当前目录中没有 obj 文件夹,因此编译器不知道在哪里添加或删除。您只需 在您的源代码目录中添加一个 obj 文件夹。