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

时间:2013-01-17 00:35:48

标签: c linux autoconf rhel5

使用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扩展的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

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