【发布时间】:2012-10-31 12:45:40
【问题描述】:
我正在制作一个 makefile,其中一个目标是 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++:错误:exptrtest.o:没有这样的文件或目录 make: * [exprtest] 错误 1"
【问题讨论】:
-
"g++ -c name.cpp" 将创建 name.o。使用 -o 标志创建不同的输出名称。