c - 设置 configure.ac 以在 EL5 上启用 asprintf(),需要 _GNU_SOURCE

标签 c linux autoconf rhel5

在 EL5 上使用 autoconf 启用 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 的检查之前调用宏 AC_USE_SYSTEM_EXTENSIONS

关于c - 设置 configure.ac 以在 EL5 上启用 asprintf(),需要 _GNU_SOURCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14370380/

相关文章:

c - C中数组转换的问题

c - 在 C 中解析文件/将其添加到数组中

c - 从 C 文件中扫描数字

linux - 带有 expect 模块的 scp 不工作

linux - Sudo 不工作 - "sudo: effective uid is not 0, is sudo installed setuid root?"

c - strcmp 可能实现不当

python - 自动检测文件夹中的文件

c++ - 如何设置 autotools 以在多个系统上同时为单独的体系结构构建项目?

autoconf - 如何结合使用AC_SUBST和AC_DEFINE?

autoconf 和 automake 对比 -O2 对比 -O3