Android 使用 openssl 构建 PJSIP

2024-01-06

我正在尝试在 Android 上构建具有 SSL/TLS 支持的 PJSIP。

我成功构建了 OpenSSL 以下这个答案 https://stackoverflow.com/a/11170629/1274789(没有 fips,作为共享 .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 https://github.com/guardianproject/openssl-android并通过阅读 ReadMe 文件来编译它。 (把你的android-ndk to PATH并执行命令ndk-build in openssl-androidroot)然后复制libcrypto.so and libssl.so from libs/armeabi/文件夹到lib/根目录中的文件夹openssl-android(您可以创建此文件夹)。你的目录结构现在应该是这样的:
openssl-android/
->apps
->crypto
->include
->jni
->lib
->libs
->...

现在只需在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

然后你会看到这一行result: OpenSSL library found, SSL support enabled。这意味着,您的 PJSIP 现已启用 OpenSSL。现在你可以继续正常了。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 使用 openssl 构建 PJSIP 的相关文章