生成文件:CreateProcess(...) 失败。该系统找不到指定的文件
Makefile: CreateProcess(...) failed. The system cannot find the file specified
我正在尝试处理 Makefile 并编写了一个简单的 "program":
DELETE_COMMAND := del
COMPILER := gcc
SOME_TEXT := lalalalalalalalalalalal!!!
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
@echo $(SOME_TEXT_2)
clean:
@$(DELETE_COMMAND) *.o
@$(DELETE_COMMAND) output.exe
sum.o: sum.c sum.h
@$(COMPILER) -c sum.c
main.o: main.c sum.h pi.h
@$(COMPILER) -c main.c
pi.o: pi.c pi.h even.h
@$(COMPILER) -c pi.c
even.o: even.c even.h
@$(COMPILER) -c even.c
但我收到以下错误:
SOME_TEXT_2 := LaLaLaLaLaLaLaLaLaLaLal!!!
process_begin: CreateProcess(NULL, SOME_TEXT_2 := LaLaLaLaLaLaLaLaLaLaLal!!!, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [Makefile:7: all] Error 2
问题是由这一行引起的:
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
但我不知道问题出在哪里。
我在 Windows.
上使用 mingw-w64 的 make
考虑规则...
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
@echo $(SOME_TEXT_2)
假设除第一行以外的所有行都以制表符开头,那么每个命令将 运行 在单独的 shell 中。但是...
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
是无效的 shell 语法——它看起来应该由 make
解释。
如果只是为了修改变量 SOME_TEXT
并打印结果,那么您可以...
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
@echo $(subst la,La,$(SOME_TEXT))
或者,让 make
分配给 SOME_TEXT_2
...
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
@echo $(SOME_TEXT_2)
我正在尝试处理 Makefile 并编写了一个简单的 "program":
DELETE_COMMAND := del
COMPILER := gcc
SOME_TEXT := lalalalalalalalalalalal!!!
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
@echo $(SOME_TEXT_2)
clean:
@$(DELETE_COMMAND) *.o
@$(DELETE_COMMAND) output.exe
sum.o: sum.c sum.h
@$(COMPILER) -c sum.c
main.o: main.c sum.h pi.h
@$(COMPILER) -c main.c
pi.o: pi.c pi.h even.h
@$(COMPILER) -c pi.c
even.o: even.c even.h
@$(COMPILER) -c even.c
但我收到以下错误:
SOME_TEXT_2 := LaLaLaLaLaLaLaLaLaLaLal!!!
process_begin: CreateProcess(NULL, SOME_TEXT_2 := LaLaLaLaLaLaLaLaLaLaLal!!!, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [Makefile:7: all] Error 2
问题是由这一行引起的:
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
但我不知道问题出在哪里。 我在 Windows.
上使用 mingw-w64 的 make考虑规则...
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
@echo $(SOME_TEXT_2)
假设除第一行以外的所有行都以制表符开头,那么每个命令将 运行 在单独的 shell 中。但是...
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
是无效的 shell 语法——它看起来应该由 make
解释。
如果只是为了修改变量 SOME_TEXT
并打印结果,那么您可以...
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
@echo $(subst la,La,$(SOME_TEXT))
或者,让 make
分配给 SOME_TEXT_2
...
SOME_TEXT_2 := $(subst la,La,$(SOME_TEXT))
all: sum.o even.o main.o pi.o
@$(COMPILER) -o output.exe sum.o even.o main.o pi.o
@echo $(SOME_TEXT_2)