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

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

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

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

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

这是PCRE的一个例子:

 #define PCRE_MAJOR @PCRE_MAJOR@ #define PCRE_MINOR @PCRE_MINOR@ #define PCRE_PRERELEASE @PCRE_PRERELEASE@ #define PCRE_DATE @PCRE_DATE@ 

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

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

以.in结尾的文件通常是名为configure的程序使用的模板文件,在替换变量扩展后生成没有扩展名的新文件。 即,如果您正在查看具有调用文件的源树,例如树中的Makefile.in ,则./configure将生成可用于从源“生成”的可用Makefile。