GCC在正确的目录中为生成的头文件创建依赖关系

时间:2018-06-12 19:34:13

标签: gcc gnu-make

我使用GCC从存储在a中的头文件创建依赖文件 某个目录。这是我的食谱:

gcc -MM -MG -MT obj/$*.o -MP -MF dep/$*.Td -I include $<

生成其中一个头文件(使用Bison 3.0.5),因此可能不会 存在。因此,我使用如上所示的-MG选项,但它会生成 没有目录的依赖项。我怎样才能调整make或GCC 将include目录添加到生成的头文件中?

提前致谢

dordow

1 个答案:

答案 0 :(得分:0)

通常,搜索路径有很多条目,如果头文件不存在,则不清楚要选择哪个前缀。

c_incl构建工具附带了一个程序#include,该程序扫描C源文件中的c_incl -No_Cache -Absent_System_Mention -Iinclude -C指令,并且可以按照您想要的方式运行,使用类似的命令{{1}}。但是这个工具相当模糊。

最好使用稍微不那么模糊的GNU make功能:仅限订单的先决条件,如JMeter Plugins Manager中所述。您可以将生成的头文件(或其他Bison输出文件)列为编译C文件的所有规则的仅订单先决条件,以便它们在首次构建时生成,但不会在之后不必要地触发重建。使用这种方法,您不需要对尚不存在的文件生成依赖关系。