23

我正在制作一个生成文件,其中一个目标是 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: No such file or directory make: * [exprtest] Error 1”

4

1 回答 1

41

将该-o选项与 结合使用-c

exptrtest.o: exprtest.cpp
    g++ -Wall -g -c exprtest.cpp -o exptrtest.o
于 2012-11-12T03:09:38.690 回答