我有一个C ++项目,我使用Bakefile进行构建过程,为msvc,mingw,gnu等生成Makefile,以获得跨平台支持。
现在的问题是,如果我更改任何.h文件(包含在其他.cpp文件中)并执行重建不会重新编译已修改的文件。但是,更改任何.cpp文件都会被重新编译。
根据项目中包含的任何文件的修改时间戳,我希望将该文件视为重建文件。
我是否遗漏了需要在.bkl文件中添加为标签的内容? 请帮忙。
答案 0 :(得分:1)
Bakefile本身只处理目标之间的依赖关系。源文件和标头之间的依赖关系经常变化,无法在makefile中写下来。这种依赖关系由编译器和make
处理,他们必须合作。
GCC和GNU支持这一点很好(Bakefile的gnu
或autoconf
格式生成带有正确deps跟踪的makefile。我猜你的抱怨特别是nmake
(Bakefile的msvc
格式),对吗?
你在这里运气不好,我担心 - nmake
太有限,不支持动态依赖。我建议生成和使用项目文件,IDE和vcbuild
都会跟踪依赖项。