使用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扩展的正确方法是什么?
答案 0 :(得分:2)
在执行任何需要AC_USE_SYSTEM_EXTENSIONS
的检查之前调用宏_GNU_SOURCE
。