所以我有这个makefile,我希望目标只是为了调用目标expertest,但显然我正在做的方式是错误的,因为我收到了错误 “make:exprtest:找不到命令 make: * [all]错误127 “ 这是makefile:
all:
exprtest
exprtest: exptrtest.o driver.o parser.tab.o scanner.o
g++ -Wall -g -o exprtest exptrtest.o driver.o parser.tab.o scanner.o
driver.o: driver.cpp scanner.hpp driver.hpp
g++ -Wall -g -c driver.cpp
parser.tab.o: parser.tab.hpp parser.tab.cpp
bison parser.ypp
g++ -Wall -g -c parser.tab.cpp
scanner.o: scanner.cpp scanner.hpp
flex -t scanner.ll > scanner.cpp
g++ -Wall -g -c scanner.cpp
clean:
rm parser.tab.hpp parser.tab.cpp scanner.cpp
答案 0 :(得分:12)
将exprtest
放在与all
相同的行上。依赖关系在冒号之后,命令出现在以下行上,缩进。
target: dependencies
[tab] system command
所以在你的情况下,一切都变成了:
all: exprtest
exprtest: exptrtest.o driver.o parser.tab.o scanner.o
g++ -Wall -g -o exprtest exptrtest.o driver.o parser.tab.o scanner.o
答案 1 :(得分:9)
您始终可以make
拨打make
的新实例
例如:
all:
$(MAKE) exprtest
exprtest:
do exprtest stuff
键入make all
将间接执行make exprtest
。
答案 2 :(得分:5)
您想要做类似
的事情all: exprtest
说的是“all
取决于exprtest
成功”。