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

最佳答案

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

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

10-11 00:49