如何在makefile中创建目标来调用makefile中的另一个目标

Amr*_*mre 10 c++ unix ubuntu makefile

所以我有这个makefile,我希望目标只是调用目标expertest,但显然我正在做的方式是错误的,因为我收到错误"make:exprtest:Command not found 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
Run Code Online (Sandbox Code Playgroud)

vla*_*adr 13

放在exprtest同一条线上all.冒号后面的依赖关系,命令来自以下行,缩进.

target: dependencies
[tab] system command
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,这一切都变为:

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
Run Code Online (Sandbox Code Playgroud)


Tre*_*key 10

你总是可以make调用一个新实例make.
例如:

all:
    $(MAKE) exprtest

exprtest:  
    do exprtest stuff
Run Code Online (Sandbox Code Playgroud)

打字make all会间接做make exprtest.


Die*_*ühl 6

你想做点什么

all: exprtest
Run Code Online (Sandbox Code Playgroud)

这说" all取决于exprtest成功".