为pjsip构建libssl.a中的体系结构x86_64找不到符号

时间:2019-06-17 11:30:53

标签: ios openssl pjsip

我正在尝试为带有openssl支持的IOS模拟器构建PJSIP库。
我遵循了此链接中提到的说明
https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone
PJSIP网站可直接访问Openssl Wiki安装和说明页面以获取指导。

所以要为我的iPhone模拟器构建openssl,这些是我给出的命令。

export CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
KERNEL_BITS=64  ./Configure darwin64-x86_64-cc no-shared no-dso no-hw no-engine --prefix=$HOME/ssl
make depend
make
make install_sw


之后,我能够看到在命令中提到的文件夹路径中,openssl似乎在终端中没有任何错误或警告的情况下构建。
因此要仔细检查,我在 libssl.a 文件

上使用此命令
lipo -info libssl.a 
Non-fat file: libssl.a is architecture: x86_64


看到lib文件已成功构建后,我似乎感到非常高兴。

现在,下一步是将其与pjsip库构建链接。
我遵循pjsip网站中提到的步骤。
这些是我输入到终端的命令

export DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
    ARCH="-arch x86_64" CFLAGS="-O2 -m64 -mios-simulator-version-min=5.0" LDFLAGS="-O2 -m64 -mios-simulator-version-min=5.0" ./configure-iphone  --with-ssl=/Users/nexgetech01/ssl 
    make dep && make

如pjsip网站中所述,我能够看到我新构建的openssl库已通过终端中的pjsip命令成功链接并测试了

checking for OpenSSL installations..
Using SSL prefix... /Users/nexgetech01/ssl
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... no
aconfigure: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!
aconfigure: WARNING: openssl/ssl.h: proceeding with the compiler's result
checking for openssl/ssl.h... yes
checking for ERR_load_BIO_strings in -lcrypto... yes
checking for SSL_CTX_new in -lssl... yes
OpenSSL library found, SSL support enabled


因此,一切似乎都太好了,可以继续执行该过程。但是编译结束时却遇到了这个错误

    Undefined symbols for architecture x86_64:
  "_opendir$INODE64", referenced from:
      _OPENSSL_DIR_read in libcrypto.a(o_dir.o)
  "_readdir$INODE64", referenced from:
      _OPENSSL_DIR_read in libcrypto.a(o_dir.o)
ld: symbol(s) not found for architecture x86_64


为了确保这一点,我在 libcrypto.a

的终端上使用了以下命令
    nm -A libcrypto.a |grep OPENSSL_DIR_rea
libcrypto.a:o_dir.o: 0000000000000000 T _OPENSSL_DIR_read

我可以在libcrypto.ai中找到未定义的内容,但我不知道在构建openssl库时会缺少什么?我被困在构建openssl库中了一个星期。请指导我,以便我进行解决。

0 个答案:

没有答案