如何使用 configure.ac 来包含 AC_INCLUDES_DEFAULT 的内容?

Posted

技术标签:

【中文标题】如何使用 configure.ac 来包含 AC_INCLUDES_DEFAULT 的内容?【英文标题】:How do I use configure.ac to include the contents of AC_INCLUDES_DEFAULT? 【发布时间】:2016-05-07 07:09:14 【问题描述】:

AC_INCLUDES_DEFAULT 是一个宏,可扩展为一堆标准头文件,以及相关的autoconf 生成的检查。事实上,文档说它扩展为:

#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif

如何使用configure.acAC_INCLUDES_DEFAULT 的内容包含在我的config.h 中?

【问题讨论】:

你的意思是config.h吗? AFAIK 它是自动生成的。我总是在我的项目中让它们进入 config.h。您是否启动了 autotool 项目的重新配置。如果您进入 Eclipse,请右键单击项目并选择 reconfigure project 是的,我知道config.h 是自动生成的。我在问如何将特定的东西放入其中。 我的意思是 AC_INCLUDES_DEFAULT 在我的例子中总是被添加到 config.h 中。星期一我会看看我的项目,我会给你一个反馈。 【参考方案1】:

AC_INCLUDES_DEFAULT 供 autoconf 检查宏使用。它不会输出您可以直接在项目中使用的任何内容。

那个列表对我来说似乎有点过时了。似乎不太可能有任何系统提供&lt;strings.h&gt; 但不再提供&lt;string.h&gt;。我认为总的来说,检查你实际使用的东西会更好。甚至除此之外,仅适用于您在实践中发现无法移植到您关心的平台的内容。

【讨论】:

以上是关于如何使用 configure.ac 来包含 AC_INCLUDES_DEFAULT 的内容?的主要内容,如果未能解决你的问题,请参考以下文章

从 configure.ac 中的文件读取版本号

如何结合 AC_SUBST 和 AC_DEFINE?

自定义 .m4 宏不适用于 configure.ac

没有规则来制作 .o 文件

autoconf 和 automake vs -O2 vs -O3

autotools:将常量从 configure.ac 传递给 python 脚本