我如何在makefile中实现目标,在makefile中调用另一个目标

How do I make a target in a makefile invoke another target in the makefile

本文关键字:makefile 目标 调用 另一个 实现      更新时间:2023-10-16

所以我有这个makefile,我希望目标全部调用目标专家,但显然我这样做的方式是错误的" make:exprtest:找不到命令制作:* [全]错误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

,您可以始终让make调用make的新实例。
例如:

all:
    $(MAKE) exprtest
exprtest:  
    do exprtest stuff

键入make all将间接执行make exprtest

exprtestall同一行。依赖项是在结肠之后的,命令在以下行,缩进。

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

您想做

之类的事情
all: exprtest

这就是" all取决于exprtest取得成功"。