使用autoconf在EL5上啓用asprintf
和strndupa
的正確方法是什麼?設置configure.ac以在EL5上啓用asprintf(),需要_GNU_SOURCE
目前我有這在我的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
不工作,我們將不知道失敗的,直到化妝失敗。在autoconf中使用這些新的GNU擴展的正確方法是什麼?
難道你不能無條件地在前面定義'_GNU_SOURCE'嗎? – caf
這似乎不是一個非常乾淨的解決方案,但可能會起作用。 – dlundquist