补充说明
autoheader 是 GNU Autoconf 的配套命令。它扫描 configure.ac 中的 AC_DEFINE、AC_CHECK_FUNCS 等宏,生成 config.h.in,其中每个配置项都写成 #undef 占位;随后 configure 会据此生成 config.h,供源码用 #include "config.h" 使用。
只有使用 AC_CONFIG_HEADERS(旧写法 AM_CONFIG_HEADER)的项目才需要 config.h.in。手工修改 configure.ac 后若忘记运行 autoheader,可能出现 config.h.in 缺少宏、autoheader 未定义符号等问题,推荐直接 autoreconf -fi。
语法
autoheader [选项]
选项
-o FILE:指定输出文件,默认config.h.in-f:即使输出文件较新也强制重建-I DIR:追加 m4 宏搜索目录-v:显示处理过程--help、--version:帮助与版本信息
实例
# 在项目根目录生成 config.h.in
autoheader
# 强制重建,并加入 m4 宏目录
autoheader -f -I m4
# 检查生成结果中的配置占位
grep '^#undef' config.h.in | head
# 完整重建工具链产物(推荐)
autoreconf -fi
若项目没有声明 AC_CONFIG_HEADERS,autoheader 会提示没有可生成的内容,这是正常现象,无需强行创建 config.h。