在编写程序的过程中,添加了头文件,如果头文件发生了变化,有时会忘记添加文件重新编译的跟踪。我写了一个双重健忘控制:
header1.h:
# ifndef CONTROLheader1h
# error not CONTROLheader1h
# endif
...
header2.h:
# ifndef CONTROLheader2h
# error not CONTROLheader2h
# endif
...
来源.c:
# define CONTROLheader1h
# define CONTROLheader2h
...
# include <header1.h>
# include <header2.h>
然后我手动跟踪Makefile
忘了是否添加依赖:
生成文件:
source.o : source.c header1.h header2.h
...
问题:什么是方便的拼写选项Makefile
,以免忘记依赖关系。
类似的问题不止一次出现,这个问题早就解决了。尝试在控制台中运行它
您将看到所需的列表
正是你需要的。
原则上,这已经足以启动类似
并通过包含将此文件挂钩到您的 Makefile。但这也可以自动化。这在官方文档中有所描述https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html
然后你可以看看这里的例子http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/让自己感觉良好。
听懂了所有的建议。删除了手动标头依赖项。只留下文件中的命令。能够更改选项和语言(C 或 C++)。文件的任何重新编译都会使用一个选项更新依赖项
-MM
(它不会对库更改做出反应)。生成文件: