如何使用g ++创建具有特定名称的目标文件

Amr*_*mre 19 c++ unix ubuntu makefile

我正在创建一个makefile,其中一个目标是exptrtest.o如何使用g ++创建一个具有该名称的目标文件,我的cpp文件的名称是exprtest.cpp而不是exptrtest.cpp?

exptrtest.o: exprtest.cpp
    g++ -Wall -g -c exprtest.cpp
Run Code Online (Sandbox Code Playgroud)

为了使它更清楚,这是我的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
Run Code Online (Sandbox Code Playgroud)

我收到错误:"g ++:error:exptrtest.o:没有这样的文件或目录make:* [exprtest]错误1"

vla*_*adr 36

-o结合使用该选项-c.

exptrtest.o: exprtest.cpp
    g++ -Wall -g -c exprtest.cpp -o exptrtest.o
Run Code Online (Sandbox Code Playgroud)