我有以下代码生成方案:
- 原文件为*.c.macro
它由生成 *.c 文件的特殊程序处理。该程序使用原始 .c.macro 文件中提到的外部 XML 文件。沿着这条线的东西:
宏进程 foo.c.macro -o foo.c
然后*.c文件正常编译成*.o
我想做的是使 .c 文件依赖于 XML 文件。因此,如果 XML 发生变化,宏处理会在调用“make”命令时自动重做。 我可以修改宏处理器的代码,以便它生成所有 XML 的列表并将其写在某处,但我不知道如何将它合并到 makefile 中。显然我需要在 makefile 中使用“include”命令,但它通常用于添加对实际代码(如 .h 文件)的依赖。
最佳答案
如果您可以让您的宏进程为每个 *.c.macro 文件编写一个依赖文件(例如 *.xmldep),您可以:
-include $(C_MACRO:.c.macro=.xmldep)
其中 $(C_MACRO) 是一个包含您的 *.c.macro 文件的变量。
前面的-
保证第一次make不会在找不到依赖文件时失败。
关于c++ - 在 Makefile 中添加对非编译文件的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24040316/