Autotools AC_CHECK_LIB获取库的路径

时间:2018-02-07 09:39:06

标签: path autotools autoconf

我是Autotools的新手,目前正在尝试创建 configure.ac 文件,以便检查以后安装程序的几个依赖项。

现在,我想检查某些库的存在,并且我发现使用AC_CHECK_LIB可以做到这一点。我认为PCK_CHECK_MODULES也可以提供帮助,但我想坚持前者,除非PCK_CHECK_MODULES解决了我的问题:

AC_CHECK_LIB执行的操作是查找库并执行操作(如果找到)或其他操作(如果找不到),但我的问题是:

如果AC_CHECK_LIB找到我的库,我该如何获得该库的确切路径?也就是说,如果我有的AC_CHECK_LIB是:

AC_CHECK_LIB(foo,函数,[action-if-found],[action-if-not-found])

如果找到了这个 foo 库的完全路径,有什么办法吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

  

如果AC_CHECK_LIB找到我的库,我该如何获得该库的确切路径?

AC_CHECK_LIB没有提供任何机制,您可以这样做。它本身并不确定实际位置。每its documentation,这就是它实际做的事情:

  

通过尝试链接测试来测试库library是否可用   用库调用函数function的程序。 function应该   是图书馆提供的功能。

AC_CHECK_LIB成功时,它只知道链接器找到了与给定库名相对应的库,该库提供具有指定函数名的函数。它不知道链接器找到它的 。另一方面,当宏没有找到一个库时,这并不一定意味着它不可用,而是链​​接器找不到它受制于链接选项(如果有的话)有效那时候。

另请注意,这对于许多目的来说非常令人满意。只有在想要使用它来定位其他相关资源时,才需要知道实际位置。 configure在没有帮助的情况下找到图书馆的情况很少见,但需要额外的信息来查找相关资源。