使用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扩展的正确方法是什么? 最佳答案
在执行任何需要AC_USE_SYSTEM_EXTENSIONS
的检查之前,请调用宏_GNU_SOURCE
。
关于c - 设置configure.ac以在EL5上启用asprintf(),需要_GNU_SOURCE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14370380/