c++ - 在 Makefile 中添加对非编译文件的依赖

标签 c++ makefile

我有以下代码生成方案:

  • 原文件为*.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/

相关文章:

linux - Makefile 在 foreach 循环中使用 ifeq 条件

c - Makefile 失败并显示警告消息

c++ - 将Eigen库与OpenCV 2.3.1一起使用

c++ - 当 ptr_vector 迭代器失效时

c++ - 脚本回调参数和结果的自动编码

linux - 是否可以链接 16 位代码和 32 位代码?

c - 如何构建灵活的代码层次结构

c++ - 此 makefile 仅创建 .o 文件

c++ - 具有重复数字的数组的嵌套循环

c++ - OpenCV SVM 总是预测更高类别的标签