2012-11-12 2 views
12

Ich mache ein Makefile und eines der Ziele ist exptrrtest.o Wie verwende ich g ++, um eine Objektdatei mit diesem Namen zu erstellen, ist der Name meiner cpp-Datei exprrtest.cpp nicht expptrtest.cpp?Wie verwende ich g ++, um Objektdatei mit einem bestimmten Namen zu erstellen

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

es deutlicher zu machen, das ist mein Make-Datei:

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 

ich den Fehler bekommen: „g ++: Fehler: exptrtest.o: Keine solche Datei oder das Verzeichnis machen: * [expretest] Fehler 1 "

+0

"g ++ -c name.cpp" erstellt name.o. Verwenden Sie das Flag -o, um einen anderen Ausgabenamen zu erstellen. –

Antwort

26

Verwenden Sie die Option -o in Verbindung mit -c.

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