2013-01-17 24 views
1

使用autoconf在EL5上啓用asprintfstrndupa的正確方法是什麼?設置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失敗。

我可以從第二測試排除asprintfstrndupa,但這時如果定義_GNU_SOURCE不工作,我們將不知道失敗的,直到化妝失敗。在autoconf中使用這些新的GNU擴展的正確方法是什麼?

+0

難道你不能無條件地在前面定義'_GNU_SOURCE'嗎? – caf

+0

這似乎不是一個非常乾淨的解決方案,但可能會起作用。 – dlundquist

回答

2

在進行任何需要_GNU_SOURCE的檢查之前調用宏AC_USE_SYSTEM_EXTENSIONS

+0

好主意,但EL5不支持'AC_USE_SYSTEM_EXTENSIONS'。 – dlundquist

+1

您可能需要安裝更新版本的Autoconf。 –

相關問題