2012-11-12 30 views
12

Robię makefile i jednym z celów jest exptrtest.Jak używać g ++ do tworzenia pliku object z tą nazwą, nazwa mojego pliku cpp jest exprtest.cpp not exptrtest.cpp?Jak używać g ++ do tworzenia pliku obiektowego o konkretnej nazwie

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

aby uczynić go bardziej jasne, to jest mój 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 

Dostaję błąd: „g ++: error: exptrtest.o: Nie ma takiego pliku lub katalogu Producent: * [exprtest] Błąd 1 "

+0

"g ++ -c nazwa.cpp" utworzy nazwę.o. Użyj opcji -o, aby utworzyć inną nazwę wyjściową. –

Odpowiedz

26

Użyj opcji -o w połączeniu z -c.

exptrtest.o: exprtest.cpp 
    g++ -Wall -g -c exprtest.cpp -o exptrtest.o 
Powiązane problemy