C++ 使用自动工具更改依赖性时重新编译某些目标
我已经能够使用autotools生成可移植的Makefiles,但是当我更改其中一个依赖项时,我遇到了重新编译目标的问题(它没有)。假设我有以下代码结构:C++ 使用自动工具更改依赖性时重新编译某些目标,c++,makefile,autotools,C++,Makefile,Autotools,我已经能够使用autotools生成可移植的Makefiles,但是当我更改其中一个依赖项时,我遇到了重新编译目标的问题(它没有)。假设我有以下代码结构: include -> head.h src -> main.cpp bin -> a.out 我已经能够创建一个makefile,它将编译main.cpp并将a.out放入bin。需要注意的是,main.cpp取决于head.h。我遇到的问题是,如果我更改head.h,我需要它重新编译main.cpp,并重新链接以形成a.
include -> head.h
src -> main.cpp
bin -> a.out
我已经能够创建一个makefile,它将编译main.cpp
并将a.out
放入bin
。需要注意的是,main.cpp
取决于head.h
。我遇到的问题是,如果我更改head.h
,我需要它重新编译main.cpp
,并重新链接以形成a.out
,但它不会。传统上,我可以在手工制作的Makefile中通过添加对每个目标的依赖性来实现这一点(main.o、a.out
等)。即使我更改main.cpp
(即,如果我更改main.cpp
,它根本不会重新编译),此问题仍然存在
我确实在configure中启用了依赖项跟踪功能(它会拾取
main.cpp
依赖于head.h
),但是在重要依赖项发生变化时,我是否还缺少一些其他功能来重新编译目标,而不必清理和重新编译所有内容?您的Makefile.am
是什么样子?更改head.h
或main.cpp
后运行make-d
时,您从中得到了什么输出(这将是很多)?您知道可以将头文件放入\u SOURCES
变量中吗?