2

我有一个程序使用的 C 头文件,该文件是从将文本文件作为输入的脚本生成的。

问题是当xmkmf -a运行时,我得到

myprogram.c:114:25: fatal error: generated_header.h: No such file or directory

生成标头的命令就像

myscript header_input.txt > generated_header.h

如何处理使用 imake 生成的标头?

我尝试添加规则说

 myprogram.c: generated_header.h

但是在运行此规则以生成文件之前,makedepend 会运行并失败。(如果我只是这样做,事情会很好,xmkmfxmkmf -a这里可能是运行xmkmf -a是使用 imake 的标准方式。)

我没有使用 imake 的经验,而且似乎没有很多文档,所以我磕磕绊绊。任何帮助,将不胜感激。

4

1 回答 1

1

通过评论找到了解决方法。问题仍然存在,以获得更“正确”的答案。

我尝试添加规则说

myprogram.c: generated_header.h

但是在运行此规则以生成文件之前,makedepend 会运行并失败。

以上告诉 imakemyprogram.c需要一个文件generated_header.h。这是一个依赖

没有告诉 imake 的是如何生成generated_header.h.

为此,您需要以下方面的内容:

generated_header.h: header_input.txt
    myscript header_input.txt > generated_header.h

请注意,“recipee”(“如何生成generated_header.h”)需要使用tab缩进,而不是空格。Make(和 imake)确实以这种方式在制表符和空格之间产生了差异。

一般语法是:

target: dependency [dependency...]
    recipee
    [recipee...]

在这方面,imake 与标准 make 没有什么不同。实际上,imake 是“首先运行 C 预处理器”,因此阅读通用的 make 手册可能会有所帮助。

于 2015-08-10T11:20:00.147 回答