Подтвердить что ты не робот

Как использовать g++ для создания объектного файла с определенным именем

Я делаю make файл, и одной из целей является exptrtest.o Как использовать g++ для создания объектного файла с этим именем, имя моего файла cpp - exprtest.cpp не exptrtest.cpp?

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++: error: exptrtest.o: нет такого файла или каталога make: * [exprtest] Ошибка 1 "

4b9b3361

Ответ 1

Используйте параметр -o в сочетании с -c.

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