我有一个 C++ 项目,我使用 Bakefile 进行构建过程,为 msvc、mingw、gnu 等生成 Makefile 以提供跨平台支持。
现在的问题是,如果我更改任何 .h 文件(包含在其他 .cpp 文件中)并且执行重建不会重新编译修改后的文件。但是更改任何 .cpp 文件都会重新编译。
根据项目中包含的任何文件的修改时间戳,我希望考虑对该文件进行重建。
我是否遗漏了需要在 .bkl 文件中添加为标签的内容?请帮忙。
Bakefile 本身只处理目标之间的依赖关系。源文件和头文件之间的依赖关系过于频繁地更改,无法在 makefile 中记录下来。这种依赖是由编译器处理的make
,必须配合。
GCC 和 GNU make 可以很好地支持这一点(并且 Bakefilegnu
或autoconf
格式会生成具有适当的 deps 跟踪的 makefile)。我猜你的抱怨是关于nmake
(Bakefile 的msvc
格式),对吧?
恐怕你在这里不走运 -nmake
太有限并且不支持动态依赖关系。我建议生成和使用项目文件,包括 IDE 和vcbuild
跟踪依赖项。