我写了一个简单的makefile来编译我的C程序。我有一个main.c和functions.c文件。我的makefile看起来像这样:
main : main.o functions.o gcc main.o functions.o -o main clean : rm *.o main
正如您所看到的,我没有为main.o和functions.o定义目标,但是当我运行make时,仍然会生成可执行文件。你能告诉我为什么make实用程序没有产生错误吗?
xytpbqjk1#
GNU Make有一个catalog of built-in rules来从依赖项构建特定的文件。在这个例子中,你的依赖项main.o和functions.o丢失了,它从模式规则中推断出它是从.c文件构建的。还有一个链接规则,所以你应该能够指定:
.PHONY: clean main: main.o functions.o clean: rm -f *.o main
make的部分值是standard targets,因此您应该考虑添加与您的项目相关的值。
1条答案
按热度按时间xytpbqjk1#
GNU Make有一个catalog of built-in rules来从依赖项构建特定的文件。在这个例子中,你的依赖项main.o和functions.o丢失了,它从模式规则中推断出它是从.c文件构建的。还有一个链接规则,所以你应该能够指定:
make的部分值是standard targets,因此您应该考虑添加与您的项目相关的值。