如何在configure.ac中使用Autoconf AC_SEARCH_LIBS宏,以便在该库本身依赖其他库时搜索静态库?
考虑这个例子。
我正在为绘图库PLplot编写一组高级包装函数,并将我的目标文件放入静态库libpsm.a中,该库由Automake安装到/ usr / local / lib中。它所代表的PLplot对象不在库中。接下来,我有另一个程序,我打算直接使用我的库,间接使用PLplot库。在该程序的configure.ac中,我有这个。 sm_device
函数是我库中的函数。
AC_SEARCH_LIBS([sm_device],[psm],[],[
AC_MSG_ERROR([unable to find the sm_device function])
])
我遇到的问题是此测试失败,因为AC_SEARCH_LIBS
宏尝试编译链接到搜索库的小型测试程序libpsm.a
并调用函数sm_device
,但这会失败,因为测试程序也没有链接到它间接依赖的PLplot库。
答案 0 :(得分:3)
AC_SEARCH_LIBS的第五个参数用于列出依赖库:
AC_SEARCH_LIBS (function, search-libs, [action-if-found],
[action-if-not-found], [other-libraries])
other-libraries参数应该是一个以空格分隔的标志列表,这些标志将在测试期间传递给链接器:例如-lm -lfoo -lbar
请参阅http://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Libraries.html#Libraries