14

だから私はこのmakefileを持っていて、ターゲットすべてがターゲットエキスパートを呼び出すだけにしたいのですが、「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
4

3 に答える 3

14

そして、いつでもmakeの新しいインスタンスを呼び出すことができますmake
例えば:

all:
    $(MAKE) exprtest

exprtest:  
    do exprtest stuff

入力make allすると間接的に行われますmake exprtest

于 2012-11-12T03:08:02.983 に答える
13

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
于 2012-11-12T02:45:45.983 に答える
6

あなたは次のようなことをしたい

all: exprtest

それが言うことは「成功するかどうallかにかかっている」ということです。exprtest

于 2012-11-12T02:46:49.407 に答える