Qt5.5.1.so库与android

Qt5.5.1.so库与android,android,c++,qt,openssl,shared-libraries,Android,C++,Qt,Openssl,Shared Libraries,我已从下载了适用于armeabi和x86 android平台的openssl编译库,并尝试将其加载到.pro文件中: INCLUDEPATH += C:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\include\ LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib \ -llibssl -llibcrypto

我已从下载了适用于armeabi和x86 android平台的openssl编译库,并尝试将其加载到.pro文件中:

INCLUDEPATH += C:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\include\
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib \
-llibssl
-llibcrypto
我还尝试了-llibssl.so-llibcrypto.so和-llibssl.a-llibcrypto.a,但出现以下错误:

collect2.exe:-1:错误:错误:ld返回1退出状态

该代码是SHA1的简单用法,它在MSVC 12.0上成功运行,带有.lib库:

mainwindow.cpp

看来SHA1才是问题所在。在sha.h中,它被定义为

#ifdef  __cplusplus
extern "C" {
#endif
#ifdef  __cplusplus
}
#endif

所以这不是问题所在。有一些Android.mk文件。怎么办?我是否应该以某种方式将其加载到.pro文件中?我只是想在android中尝试使用openssl,然后将其编译成舒尔版本。这是可行的,因为编译需要时间,而且必须在linux上完成

我的问题是没问题。似乎当您想要链接从lib开始的共享库时,您应该会错过它,所以在我的例子中,这是有效的:

INCLUDEPATH += C:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\include\
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lssl
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lcrypto
注意,我在两个目录lib和lib1中将libcrypto.so和libssl.so与libcrypto.a和libssl.a分开。对我来说,只有静态库。一个工作的、共享的库给了我错误

#ifdef  __cplusplus
extern "C" {
#endif
#ifdef  __cplusplus
}
#endif
INCLUDEPATH += C:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\include\
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lssl
LIBS += -LC:\Temp\openssl\OpenSSL-for-Android-Prebuilt\openssl-1.0.2\armeabi-v7a\lib -lcrypto