我正在学习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
文件是一个标题模板,它根据目标平台上存在的功能的几个测试结果填充成configure
脚本的实际标头。
以.in结尾的文件通常是名为configure
的程序使用的模板文件,它在替换变量扩展后生成没有扩展名的新文件。即,如果您正在查看具有调用文件的源树,例如Makefile.in
在树中,然后./configure
将生成一个可用的Makefile,可用于从源“制造”。