Символы не найдены для архитектуры x86_64 в libssl.a при его сборке для pjsip - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь собрать библиотеку PJSIP для симулятора IOS с поддержкой openssl.
Я следовал инструкциям, указанным в этой ссылке
https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone
Веб-сайт PJSIP направляется на страницу установки и инструкции OpenSSL Wiki.

чтобы собрать openssl для моего симулятора iPhone, это были команды, которые я дал.

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 file

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

1024 *
*

Итак, чтобы убедиться, что я использовал следующую команду на терминале на моем libcrypto.a

    nm -A libcrypto.a |grep OPENSSL_DIR_rea
libcrypto.a:o_dir.o: 0000000000000000 T _OPENSSL_DIR_read

я могу обнаружить, что как неопределенный в моем libcrypto.ai, я не знаю, чего мне не хватает при сборке библиотеки openssl. Я застрял на сборке этой библиотеки openssl на неделю. Пожалуйста, дайте мне указание, чтобы я мог разобраться. *

...