【发布时间】:2013-01-17 00:35:47
【问题描述】:
使用 autoconf 在 EL5 上启用 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吗? -
这似乎不是一个非常干净的解决方案,但可能会奏效。