我有一个简单的库,可以为我生成标题,我希望在Makefile中将它们链接在一起。
如果cpp文件包含不存在的头文件,它应该从匹配的源文件生成它(如果相应的文件存在)。我无法弄清楚如何做到这一点。
我已经尝试使用gcc -MM提前查找每个.cpp文件的依赖项,但如果缺少标头,则会失败。我需要知道哪些文件丢失才能尝试重新生成它们。
如果我只为所有.cpp文件的头文件定义一个先决条件,它当然会重新编译我的所有.cpp文件。
关于我如何仅重新生成丢失的标头的任何想法?
答案 0 :(得分:5)
似乎可以使用gcc找到解决方案:
http://gcc.gnu.org/onlinedocs/cpp/Invocation.html
-MG
与-M请求依赖项等选项结合使用 生成,-MG假定缺少标题 文件是生成的文件并添加 他们没有依赖列表 提出错误。
答案 1 :(得分:0)
您是否尝试过定义模式规则以生成每个标头,例如
%.hh: %.cpp
header_generator $^ > $@