Android ndk OpenSSL libssl.so错误未定义对';ssl3_cbc_移除填充物';

Android ndk OpenSSL libssl.so错误未定义对';ssl3_cbc_移除填充物';,android-ndk,openssl,libssl,Android Ndk,Openssl,Libssl,我目前正在将一个较旧版本的OpenSSL修补到最新的稳定1.0.0o版本(通过import_OpenSSL.sh),以便通过NDK r10c与Android应用程序一起使用 在构建libssl.so sharedlibrary时,我遇到以下错误 [armeabi] SharedLibrary : libssl.so jni/openssl/ssl/s3_enc.c:542: error: undefined reference to 'ssl3_cbc_remove_padding' jni/

我目前正在将一个较旧版本的OpenSSL修补到最新的稳定1.0.0o版本(通过import_OpenSSL.sh),以便通过NDK r10c与Android应用程序一起使用

在构建libssl.so sharedlibrary时,我遇到以下错误

[armeabi] SharedLibrary  : libssl.so
jni/openssl/ssl/s3_enc.c:542: error: undefined reference to 'ssl3_cbc_remove_padding'
jni/openssl/ssl/s3_enc.c:739: error: undefined reference to 'ssl3_cbc_record_digest_supported'
jni/openssl/ssl/s3_enc.c:764: error: undefined reference to 'ssl3_cbc_digest_record'
jni/openssl/ssl/s3_pkt.c:464: error: undefined reference to 'ssl3_cbc_copy_mac'
jni/openssl/ssl/t1_enc.c:763: error: undefined reference to 'tls1_cbc_remove_padding'
jni/openssl/ssl/t1_enc.c:919: error: undefined reference to 'ssl3_cbc_record_digest_supported'
jni/openssl/ssl/t1_enc.c:925: error: undefined reference to 'ssl3_cbc_digest_record'
jni/openssl/ssl/ssl_lib.c:1058: error: undefined reference to 'dtls1_min_mtu' 
以第一个错误为例,我可以在文件s3_enc.c()中看到一个函数“ssl3_cbc_remove_padding”的引用,但实际的函数不见了,只有ssl_locl.h()中的一个原型,所以我有点困惑


任何帮助或以往的经验将不胜感激,以得到这些错误清除。如果您需要我进一步说明,请询问。

检查文件
(s3_enc.c、t1_enc.c、ssl_lib.c)
,是否包含在各自的
.mk
文件中。在我的例子中,它没有包括在内,所以我只是在
ssl/Android.mk
LOCAL\u SRC\u files
部分下添加这些源文件。

1.0.0和1.0.1是二进制兼容的。为什么不使用最新的1.0.1并避免底层功能问题和修补问题?我在尝试构建0.9.8zc版本时也面临同样的问题。出于某种原因,我不得不使用0.9.8zc版本。这个问题有什么解决办法吗?还要注意,如果我创建一个独立的NDK项目并构建openssl,那么一切都很好。但是,如果我在实际项目中嵌入相同的代码,则会出现此问题。与我的最终解决方案非常类似,我的.mk文件丢失了依赖于s3_enc.c、t1_enc.c和ssl_lib.c进行编译的文件(例如s3_cbc.c、d1_*.c等)。手动添加它们,然后缝合以完成此操作。