在 EL5 上使用 autoconf 启用 asprintf
和 strndupa
的正确方法是什么?
目前我的 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
失败。
我可以从第二个测试中排除 asprintf
和 strndupa
,但是如果定义 _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/