在没有soname的情况下构建libcurl

时间:2014-02-26 06:05:37

标签: android-ndk libcurl

我正在尝试在ubuntu中使用ndk r7构建libcurl并获取libcurl.so.5.3.0,其soname是libcurl.so.5。我还有一个使用libcurl.so的libxxx.so。当我使用System.loadLibrary(“curl”);和System.loadLibrary(“xxx”);在Android应用程序中,我得到了E / AndroidRuntime(361):引起:java.lang.UnsatisfiedLinkError:无法加载libcurl.so.5:findLibrary返回null。有没有人知道如何在没有soname的情况下构建libcurl.so或者使用soname libcurl.so或者如何在Java中加载libcurl.so.5。 我注意到在构建libcurl的末尾附近,有一行-Wl,-soname -Wl,libcurl.so.5 -o .libs / libcurl.so.5.3.0。我不知道这是从哪里来的。非常感谢!

1 个答案:

答案 0 :(得分:2)

libcurl.so似乎是libcurl.so.5的软链接,而System.loadLibrary找不到真正的libcurl.so.5。

您可以尝试:将libcurl.so.5重命名为libcurl.so。并尝试再次从java加载它。

另一种方式:您可以直接使用libcurl.a而不是libcurl.so在项目中构建它。因此,您无需再在Java中加载libcurl.so。

希望它有所帮助。