将 OpenSSL 与 PJSIP 构建错误集成

Integrating OpenSSL with PJSIP build error

将最新的 OpenSSL 库与 PJSIP 集成时出现以下错误。

使用以下命令使用 PJSIP 编译 Openssl 1.1.0f。

./configure-iphone --with-ssl=/Users/nexgetech01/Downloads/OpenSSL-for-iPhone-master/bin/iPhoneOS10.3-armv7.sdk/

它提供了使用 openssl 的成功编译,并准备好进行构建。

之后,我使用以下命令使用 PJSIP 构建 OpenSSL 库。

make dep && make clean && make

构建时出现以下错误。

Undefined symbols for architecture armv7:
  "_SSL_library_init", referenced from:
      _init_openssl in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
  "_SSL_load_error_strings", referenced from:
      _init_openssl in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
  "_TLSv1_method", referenced from:
      _create_ssl in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
  "_TLSv1_server_method", referenced from:
      _init_openssl in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
  "_X509_get_notAfter", referenced from:
      _get_cert_info in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
  "_X509_get_notBefore", referenced from:
      _get_cert_info in libpj-armv7-apple-darwin_ios.a(ssl_sock_ossl.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../bin/pjlib-test-armv7-apple-darwin_ios] Error 1
make[1]: *** [pjlib-test-armv7-apple-darwin_ios] Error 2
make: *** [all] Error 1

检查 PJSIP 票证后,PJSIP 开发人员修复了此错误。我将展示如何更轻松地修复上述错误。

请打开以下路径中的ssl_sock_ossl.c文件,

$(PJSIP_DIR)/pjlib/src/pj/ssl_sock_ossl.c

按照下面的 PJSIP link 覆盖 ssl_sock_ossl.c 文件。

使用以下 link.

在 ssl_sock_ossl.c 中正确添加绿色线条

https://trac.pjsip.org/repos/changeset/5623

https://trac.pjsip.org/repos/ticket/1999