2012-11-12 5 views
12

私はmakefileを作成していますが、ターゲットの1つはexptrtest.oです。g ++を使ってその名前のオブジェクトファイルを作成するにはどうすればいいですか? exprtest.cppはexptrtest.cppではありませんか?g ++を使って特定の名前のオブジェクトファイルを作成する方法

exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exprtest.cpp 

それをより明確にする、これが私のメイクです:

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 
exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exptrtest.o exprtest.cpp 
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 

私はエラーを取得しています: 「G ++:エラー:exptrtest.o:そのようなファイルやディレクトリはありません メイクを: * [exprtest]エラー1 "

+0

"g ++ -c name.cpp"はname.oを作成します。異なる出力名を作成するには、-oフラグを使用します。 –

答えて

26

-oオプションを-cと組み合わせて使用​​してください。

exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exprtest.cpp -o exptrtest.o 
関連する問題