什么意思是扩展名为"h.in"的文件?

And*_*iel 32 c header-files

我正在学习C语言,我看到了一个我以前从未见过的新扩展.

带有扩展名的文件library.h.in是什么意思?

它是带有扩展名".h"的简单标题吗?有什么不同?

Vla*_*kov 30

这些文件通常是autoconf的输入,它将生成最终的.h文件.

这是PCRE的一个例子:

#define PCRE_MAJOR          @PCRE_MAJOR@
#define PCRE_MINOR          @PCRE_MINOR@
#define PCRE_PRERELEASE     @PCRE_PRERELEASE@
#define PCRE_DATE           @PCRE_DATE@
Run Code Online (Sandbox Code Playgroud)

Autoconf将@…@使用相应的值替换所有变量(),结果将是.h文件.


Dan*_*her 16

通常,.h.in文件是一个标题模板,它configure根据目标平台上存在的功能的几个测试结果填充成脚本的实际标题.

  • 此文件扩展名在其他构建工具中也很流行,例如`cmake` (4认同)

syb*_*0rg 6

以 .in 结尾的文件通常是由名为 的程序使用的模板文件,configure该程序在替换变量扩展后生成不带扩展名的新文件。也就是说,如果您正在查看一个源代码树,其中包含被调用的文件,例如Makefile.in在树中,那么./configure将生成一个可用的 Makefile,可用于从源代码“make”。