1

我有一个 C++ 项目,我使用 Bakefile 进行构建过程,为 msvc、mingw、gnu 等生成 Makefile 以提供跨平台支持。

现在的问题是,如果我更改任何 .h 文件(包含在其他 .cpp 文件中)并且执行重建不会重新编译修改后的文件。但是更改任何 .cpp 文件都会重新编译。

根据项目中包含的任何文件的修改时间戳,我希望考虑对该文件进行重建。

我是否遗漏了需要在 .bkl 文件中添加为标签的内容?请帮忙。

4

1 回答 1

1

Bakefile 本身只处理目标之间的依赖关系。源文件和头文件之间的依赖关系过于频繁地更改,无法在 makefile 中记录下来。这种依赖是由编译器处理的make,必须配合。

GCC 和 GNU make 可以很好地支持这一点(并且 Bakefilegnuautoconf格式会生成具有适当的 deps 跟踪的 makefile)。我猜你的抱怨是关于nmake(Bakefile 的msvc格式),对吧?

恐怕你在这里不走运 -nmake太有限并且不支持动态依赖关系。我建议生成和使用项目文件,包括 IDE 和vcbuild跟踪依赖项。

于 2010-05-04T11:53:18.533 回答