autoconf:检查特定的库

时间:2018-02-16 14:40:15

标签: autoconf

我正在努力让Autoconf执行所需的检查。考虑在标准位置安装了软件包版本的用例 - 其标题位于Webview.clearHistory(),其库位于webView.loadData(someUrl); webView.clearHistory(); 。用户在webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); clearHistory(); } } 中安装了不同版本的软件包,其中包含文件位于/ home / package / include,库位于/usr/include

处理此问题的典型方法是添加/usr/lib选项进行配置。为了防止打字错误并确保指定的包可以运行,配置代码将使用/home/package来测试标头,并使用/home/package/lib--with-package=/home/package来保存库。

我遇到的问题是限制Autoconf仅查看提供的位置,而不是在标准位置选择安装。我试过了:

  • AC_CHECK_HEADERS设置AC_SEARCH_LIB,但这并未解决问题。到目前为止,我唯一能找到的解决方法是测试包含文件是否存在 - AC_CHECK_LIB - 但这看起来非常脆弱并且呈现CPPFLAGS=-I/home/package没有实际意义。
  • 在调用AC_CHECK_HEADERS之前设置test -f $with_package/include/package.h并清除AC_CHECK_HEADERS,但这并未限制搜索。它仍然选择标准位置。同上LDFLAGS=-L/home/package/lib

请注意,如果LD_LIBRARY_PATHAC_SEARCH_LIB被正确设置,编译器和链接器会拾取正确的软件包版本,例如通过在最终结果上运行ldd来验证(例如)。

有什么建议吗?或者只是检查文件和lib存在是唯一真正的选项吗?

0 个答案:

没有答案