这个简单的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决定重建项目。为什么呢?
答案 0 :(得分:4)
答案 1 :(得分:1)
已经提供了明显的文档链接。我只想评论你的例子。你告诉我们:
文件hellomake
依赖于hellomake.o
和hellofunc.o
,即。两者都是hellomake
的先决条件。如果自上次构建以来任何先决条件更改,则将重建hellomake
。如何(重新)建造是第二条线,即。 gcc调用。
回答你的问题:提供的代码片段不会查找任何cpp文件。除此之外,您还需要不同的规则,即。
之类的东西%.o: %.cpp
gcc -I. -c @< -o $@
如果您要搜索一个相当通用的Makefile,我建议this one。它一直是我使用的许多Makefile的基础。