深入探索Autoconf:配置、检查与宏的运用
1. 配置文件与远程构建
在源代码中, config.h 的包含依赖于编译环境中 HAVE_CONFIG_H 的定义。若自行编写 makefile ,需在编译器命令行手动定义 HAVE_CONFIG_H ;而使用 Automake 生成的 Makefile.in 模板时,它会自动处理。
HAVE_CONFIG_H 是通过 Autoconf 替换变量 @DEFS@ 传递到编译器命令行的一系列定义的一部分。在 autoheader 和 AC_CONFIG_HEADERS 功能出现之前, Automake 会将所有编译器配置宏添加到 @DEFS@ 变量中。若在 configure.ac 中不使用 AC_CONFIG_HEADERS ,仍可采用此方法,但不推荐,因为大量定义会使编译器命令行过长。
在远程构建方面,生成的 config.h 文件在构建目录结构中的相对位置,与模板文件 config.h.in 在源目录结构中的位置相同。通常,模板文件位于顶级源目录,所以生成的文件会在顶级构建目录,即生成的 src/Makefile
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



