AC_CONFIG_HEADERS 和 AC_CONFIG_HEADER 是 GNU Autoconf 中用于配置生成头文件的宏,它们的区别主要体现在以下方面:

功能范围

AC_CONFIG_HEADER(旧版)

是 Autoconf 早期版本的宏(现已过时),用于指定单个头文件的生成(如 config.h)。
示例:

AC_CONFIG_HEADER([config.h])

AC_CONFIG_HEADERS(新版)

是 Autoconf 推荐使用的现代宏,支持配置一个或多个头文件,功能更灵活。
示例:

AC_CONFIG_HEADERS([config.h other/config.h])

兼容性

AC_CONFIG_HEADER 在较新版本的 Autoconf 中已被标记为过时(但仍可能兼容)。

AC_CONFIG_HEADERS 是当前推荐的方式,支持更多特性(如多头文件生成)。

实际使用建议

优先使用 AC_CONFIG_HEADERS,即使只需生成一个头文件。
若需生成多个头文件(例如分模块配置),必须使用 AC_CONFIG_HEADERS。

底层行为

两者最终都会调用相同的处理逻辑,但 AC_CONFIG_HEADERS 通过封装提供了更清晰的语法和扩展性。

总结

功能相同:两者都用于生成 config.h 等头文件。
语法差异:AC_CONFIG_HEADERS 是新版宏,支持多文件;AC_CONFIG_HEADER 是旧版单文件宏。
始终使用 AC_CONFIG_HEADERS 以确保兼容性和扩展性。