AC_CHECK_LIB具有其他外部依赖关系的库的最佳方法是什么?

时间:2009-06-26 01:04:06

标签: autotools

我编写了一个依赖于libxml ++和curl的库,我很难在我编写的另一个包中找出如何在我的库中使用AC_CHECK_LIB。新包的config.log文件表示存在对curl_*xmlpp::*的未定义引用。

我已经在我的最新软件包中设置了PKG_CHECK_MODULES libxml ++和curl,这些工作正常,但它们显然不适用于我自己库的AC_CHECK_LIB调用。 (在检查我自己的库之前,我检查了libxml ++和curl)

2 个答案:

答案 0 :(得分:7)

我不知道你怎么称呼AC_CHECK_LIB,因为它不在你的问题中,但我的猜测是你没有将你的依赖项指定为其他库。

语法为:

AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])

所以把[-lcurl ...]作为最后一个参数。

答案 1 :(得分:4)

为什么不为您的软件包提供pkg-config元数据文件(*.pc)。这样客户就可以使用PKG_CHECK_MODULES,而事情就是Just Work。

但是你遇到这个问题的事实表明你没有将你的库与libxml ++和libcurl链接起来 - 而你可能应该这样做。在大多数现代系统(包括Linux)上,共享库了解它们的依赖关系。