首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android r8的Openssl构建问题

Android r8的Openssl构建问题
EN

Stack Overflow用户
提问于 2012-08-08 02:04:18
回答 4查看 6.7K关注 0票数 3

我试图在我的NDK应用程序中构建Openssl。即使在遵循Android构建所期望的所有必要步骤之后,我也会不断地得到链接错误。我使用ndk支持的库使用ndk-build命令。我可以看到libcrypto.So成功地编译和链接。

代码语言:javascript
复制
Compile thumb  : crypto <= sha512-armv4.S
SharedLibrary  : libcrypto.so
Install        : libcrypto.so => /Users/<me>/Downloads/paddybyers-openssl-android-2b40b8b/libs/armeabi/libcrypto.so

但是 openssl 由于某种原因而开始失败,.I尝试了所有可能的方法,包括构建eclipse以及命令行,我甚至尝试单独构建openssl作为独立项目。但它总是停留在同一个层次上。

  • My配置:

使用mac r8 Openssl来源于:https://github.com/eighthave/openssl-android.git (我尝试在https://github.com/guardianproject/openssl-android.git上构建)

它在创建libcrypto.So后开始编译openssl之前抛出一个错误。

代码语言:javascript
复制
****Compile thumb  : ssl <= ssl_algs.c
Compile thumb  : ssl <= bio_ssl.c
Compile thumb  : ssl <= ssl_err.c
Compile thumb  : ssl <= kssl.c
SharedLibrary  : libssl.so
Executable     : openssl
/Users/me/Documents/android/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: warning: libz.so, needed by ./obj/local/armeabi/libcrypto.so, not found (try using -rpath or -rpath-link)
./obj/local/armeabi/libcrypto.so: undefined reference to `zError'
./obj/local/armeabi/libcrypto.so: undefined reference to `inflateEnd'
./obj/local/armeabi/libcrypto.so: undefined reference to `deflate'
./obj/local/armeabi/libcrypto.so: undefined reference to `deflateInit_'
./obj/local/armeabi/libcrypto.so: undefined reference to `inflate'
./obj/local/armeabi/libcrypto.so: undefined reference to `deflateEnd'
./obj/local/armeabi/libcrypto.so: undefined reference to `inflateInit_'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/openssl] Error 1**** }

如果有人能帮我解决这件事我会很感激的?

EN

回答 4

Stack Overflow用户

发布于 2012-09-21 00:47:02

我遇到了同样的问题,并修改了OpenSSL1.0.1cForAndroid/crypto/Android.mk,将libzib添加到导出列表中:

代码语言:javascript
复制
crypto/Android.mk
LOCAL_EXPORT_LDLIBS := -lz 

in中确实有"LOCAL_LDLIBS += -lz“,所以它在构建libcrypto时成功地将其链接起来,但是很明显,在ssl (?)中进行链接还不够。

我用ndk r8b,gcc 4.6

票数 4
EN

Stack Overflow用户

发布于 2012-09-25 07:24:07

尝试在OpenSSL1.0.1cForAndroid\jni\Application.mk中添加以下行

代码语言:javascript
复制
NDK_TOOLCHAIN_VERSION=4.4.3

我只是通过这样做解决了同样的问题。

票数 2
EN

Stack Overflow用户

发布于 2012-08-08 02:07:36

很可能你有一个链接相关的问题,试着阅读这个问题的答案。

How to link any library in ndk application

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11856688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档