下列的宏检查某些C、C++或者Fortran 77库文件是否存在。
宏: AC_CHECK_LIB (library, function [, action-if-found [, action-if-not-found [, other-libraries]]])
依赖于当前的语言(参见对语言的选择),试图通过检查一个测试程序是否可以和 库library进行连接以获取C、C++或者Fortran 77函数function,从而确认函数function 是可以使用的。library是库的基本名字;例如,为了检查-lmp',就把
mp’作为 参数library。
action-if-found是一个在与库成功地进行了连接的时候运行的shell命令列表; action-if-not-found是一个在与库的连接失败的时候运行的shell命令列表。 如果没有给出action-if-found,缺省的动作就是把-llibrary'添加到 LIBS中,并且定义
HAVE_LIBlibrary’(全部使用大写字母)。
如果与library的连接导致了未定义符号错误(unresolved symbols),而这些错误可以通过与其他库的连接来解决, 就把这些库用空格分隔,并作为other-libraries参数给出:`-lXt -lX11’。否则,本宏 对library是否存在的检测将会失败,这是因为对测试程序的连接将总是因为含有未定义符号错误而失败。
宏: AC_HAVE_LIBRARY (library, [, action-if-found [, action-if-not-found [, other-libraries]]])
本宏等价于function参数为main的,对AC_CHECK_LIB的调用。 此外,library可以写作foo'、
-lfoo’或者libfoo.a'。 对于以上任一种形式,编译器都使用
-lfoo’。但是,library不能是一个shell变量; 它必须是一个文字名(literal name)。本宏是一个过时的宏。
宏: AC_SEARCH_LIBS (function, search-libs [, action-if-found [, action-if-not-found [, other-libraries]]])
如果function还不可用,就寻找一个定义了function的库。这等同于首先不带库调用 AC_TRY_LINK_FUNC,而后为每个在search-libs中列举的库调用AC_TRY_LINK_FUNC。
如果找到了函数,就运行action-if-found。否则运行action-if-not-found。
如果与库library的连接导致了未定义符号错误,而这些错误可以通过与附加的库进行连接来解决,就把这些库 用空格分隔,并作为other-libraries参数给出:`-lXt -lX11’。否则,本宏对function 是否存在的检测将总是失败,这是因为对测试程序的连接将总是因为含有未定义符号错误而失败。
宏: AC_SEARCH_LIBS (function, search-libs[, action-if-found [, action-if-not-found]])
本宏等价于为每个在search-libs中列举的库调用一次AC_TRY_LINK_FUNC。为找到的第一个含有 function的库,把`-llibrary’添加到LIBS中,并且执行 action-if-found。否则就执行action-if-not-found。