【发布时间】:2018-05-31 07:32:59
【问题描述】:
我制作了一个makefile,但它不能正常工作,它显示致命错误。
CXX = g++
CXXFLAGS = -wall -g
all:main
main: main.o Point.o Rectangle.o
$(CXX) $(CXXFLAGS) -o main main.o Point.o Rectangle.o
main.o: main.cpp Point.h Rectangle.h
$(CXX) $(CFLAGS) -c main.cpp
Point.o: Point.h
Rectangle.o: Rectangle.h Point.h
clean:
rm *o main
【问题讨论】:
-
请显示整个错误信息,以及您如何调用
make。 -
你必须告诉如何创建你的
.o文件。Point.o: Point.h什么都不做。你必须在它下面用标签$(CXX) -o Point.o -c Point.c $(CXXFLAGS) -
可能存在隐含规则。假设选项卡位于正确的位置,这样的 makefile 对我来说看起来不错。
-
@Hearner:你错了!足以说明 main 依赖于其他一些对象。 make 本身具有如何从不同的源类型创建 .o 文件的隐含规则
-
"$(CXX) $(CFLAGS) -c main.cpp" 行对我来说毫无意义。也缺少所有需要的缩进。它必须是标签!