我正在尝试在Android上使用SSL / TLS支持构建PJSIP.
我在this answer之后成功构建了OpenSSL(没有fips,作为shared-.so库)并将其安装在〜/ android(创建了〜/ android / ssl目录)中.
现在,当我这样做
./configure-android --with-ssl=/home/andrea/android/ssl
并查看config.log,第一个错误状态
<ndk-directories-and-stuff>/arm-linux-androideabi/bin/ld: warning: libdl.so, needed by /home/andrea/android/ssl/lib/libcrypto.so, not found (try using -rpath or -rpath-link)
下面是很多未定义的引用.
因此,SSL支持被禁用:
aconfigure:7012: result: ** OpenSSL libraries not found, disabling SSL support **
ac_cv_header_openssl_ssl_h=yes
ac_cv_lib_ssl_SSL_library_init=no
CFLAGS=' -I/home/andrea/android/android-ndk-r8e/platforms/android-14/arch-arm/usr/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I/home/andrea/android/ssl/include'
LDFLAGS=' -nostdlib -L/home/andrea/android/android-ndk-r8e/platforms/android-14/arch-arm/usr/lib/ -L/home/andrea/android/ssl/lib'
ac_no_ssl=''
libssl_present=''
openssl_h_present='1'
但是libdl.so存在于ndk的目录中:
<ndk-dir>/platforms/android-14/arch-arm/usr/lib/
我想我必须告诉ld其他库的位置,
ld的建议是什么意思?
try using -rpath or -rpath-link
我无法理解-rpath或rpath-link是什么或在哪里应用它们.
有任何想法吗?
解决方法:
我用OpenSSL成功构建了PJSIP.请按照以下步骤操作:
首先下载openssl-android并通过阅读ReadMe文件进行编译. (把你的android-ndk放到PATH并在openssl-android root中执行命令ndk-build)然后只需将libcry / armeabi /文件夹中的libcrypto.so和libssl.so复制到openssl-android根目录下的lib /文件夹中(你可以创建)这个文件夹).你的目录结构现在应该是这样的:
OpenSSL的功能的Android /
– >应用
– >加密
– >包含
– > JNI
– > LIB
– >库
– > …
现在只需在pjsip的根目录中执行:
./configure-android –with-ssl = / home / your-user-name / path-to-openssl-android-dir
确认包含openssl只是将此命令传递给grep,如:
./configure-android –with-ssl = / home / your-user-name / path-to-openssl-android-dir | grep -wi ssl
然后您将看到此行结果:找到OpenSSL库,启用SSL支持.这意味着,现在为您的PJSIP启用了OpenSSL.现在你可以继续正常了.
希望这可以帮助.
标签:android,openssl,pjsip 来源: https://codeday.me/bug/20190703/1369767.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。