【问题标题】:Setting up configure.ac to enable asprintf() on EL5, needs _GNU_SOURCE设置 configure.ac 以在 EL5 上启用 asprintf(),需要 _GNU_SOURCE
【发布时间】:2013-01-17 00:35:47
【问题描述】:

使用 autoconf 在 EL5 上启用 asprintfstrndupa 的正确正确方法是什么?

目前我的 configure.ac 中有这个:

AC_CHECK_FUNCS([asprintf strndupa],,
   AC_DEFINE([_GNU_SOURCE], [], [Linux requires _GNU_SOURCE for asprintf]))
AC_CHECK_FUNCS([asprintf strndupa uname],, AC_MSG_ERROR([some needed function(s) not found]))

但是 autoconf 正在缓存测试的负面测试结果,所以第二个 AC_CHECK_FUNCS 失败。

我可以从第二个测试中排除asprintfstrndupa,但是如果定义_GNU_SOURCE 不起作用,我们将不会知道失败,直到 make 失败。在 autoconf 中使用这些新的 GNU 扩展的正确方法是什么?

【问题讨论】:

  • 你不能无条件地预先定义_GNU_SOURCE吗?
  • 这似乎不是一个非常干净的解决方案,但可能会奏效。

标签: c linux autoconf rhel5


【解决方案1】:

在进行任何需要_GNU_SOURCE 的检查之前调用宏AC_USE_SYSTEM_EXTENSIONS

【讨论】:

  • 好主意,但 EL5 不支持 AC_USE_SYSTEM_EXTENSIONS
  • 您可能需要安装更新版本的 Autoconf。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 2013-08-24
  • 2011-10-22
  • 2014-09-28
  • 2015-07-13
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多