MAKE如何知道要检查的源文件

时间:2015-09-24 11:28:11

标签: c++ gcc makefile

这个简单的make脚本如何知道某些cpp文件被更改了?这是否意味着对于每个.o文件,它会查找相应的.cpp文件?如果扩展名不同,该怎么办 - 例如.c

hellomake: hellomake.o hellofunc.o 
    gcc -o hellomake hellomake.o hellofunc.o -I.

UPD: 根据我的理解,我提供的脚本不应该查看c和cpp文件。当我第二次要求建造项目MAKE告诉我" make:' hellomake'已是最新。  但是当我改变hellomake.cpp时,我很惊讶MAKE决定重建项目。为什么呢?

2 个答案:

答案 0 :(得分:4)

GNU make有许多内置规则。运行make -p查找它们。并使用Makefile中的现有规则,请参阅thisthatthis

答案 1 :(得分:1)

已经提供了明显的文档链接。我只想评论你的例子。你告诉我们:

文件hellomake依赖于hellomake.ohellofunc.o,即。两者都是hellomake的先决条件。如果自上次构建以来任何先决条件更改,则将重建hellomake。如何(重新)建造是第二条线,即。 gcc调用。

回答你的问题:提供的代码片段不会查找任何cpp文件。除此之外,您还需要不同的规则,即。

之类的东西
%.o: %.cpp
    gcc -I. -c @< -o $@ 

如果您要搜索一个相当通用的Makefile,我建议this one。它一直是我使用的许多Makefile的基础。