我正在努力让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_PATH
和AC_SEARCH_LIB
被正确设置,编译器和链接器会拾取正确的软件包版本,例如通过在最终结果上运行ldd来验证(例如)。
有什么建议吗?或者只是检查文件和lib存在是唯一真正的选项吗?