Makefile可以确定使用gcc哪些标题丢失?

时间:2010-12-13 19:44:09

标签: makefile dependencies code-generation build-automation

我有一个简单的库,可以为我生成标题,我希望在Makefile中将它们链接在一起。

如果cpp文件包含不存在的头文件,它应该从匹配的源文件生成它(如果相应的文件存在)。我无法弄清楚如何做到这一点。

我已经尝试使用gcc -MM提前查找每个.cpp文件的依赖项,但如果缺少标头,则会失败。我需要知道哪些文件丢失才能尝试重新生成它们。

如果我只为所有.cpp文件的头文件定义一个先决条件,它当然会重新编译我的所有.cpp文件。

关于我如何仅重新生成丢失的标头的任何想法?

2 个答案:

答案 0 :(得分:5)

似乎可以使用gcc找到解决方案:

http://gcc.gnu.org/onlinedocs/cpp/Invocation.html

  

-MG

     

与-M请求依赖项等选项结合使用   生成,-MG假定缺少标题   文件是生成的文件并添加   他们没有依赖列表   提出错误。

答案 1 :(得分:0)

您是否尝试过定义模式规则以生成每个标头,例如

%.hh: %.cpp
    header_generator $^ > $@