2012-11-12 36 views
12

我正在生成makefile,其中一個目標是exptrtest.o如何使用g ++創建具有該名稱的目標文件,我的cpp文件的名稱是exprtest.cpp不exptrtest.cpp?如何使用g ++創建具有特定名稱的目標文件

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

,使之更加清楚,這是我的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 
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 
相關問題