cmake не находит библиотеку openssl на ma c os x (несмотря на добавление вручную) - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь скомпилировать https://github.com/dmikushin/binance-cxx-api на OSX 10.13.6 (так как код написан для linux Мне пришлось немного подкорректировать)

Я получаю следующие ошибки (которые связаны с openssl, насколько я вижу):

Undefined symbols for architecture x86_64:
  "_EVP_sha256", referenced from:
      binance::hmac_sha256(char const*, char const*) in binance_utils.cpp.o
  "_HMAC", referenced from:
      binance::hmac_sha256(char const*, char const*) in binance_utils.cpp.o
  "_SHA256_Final", referenced from:
      binance::sha256(char const*) in binance_utils.cpp.o
  "_SHA256_Init", referenced from:
      binance::sha256(char const*) in binance_utils.cpp.o
  "_SHA256_Update", referenced from:
      binance::sha256(char const*) in binance_utils.cpp.o
ld: symbol(s) not found for architecture x86_64

Проект основан на cmake и не находит и не ссылается на openssl (устанавливается вместе с homebrew)

Я добавил include и lib dirs непосредственно в компиляторе cmake GUI ->, флаг компоновщика (взял каталог dir, все еще выдавал ошибки)

Также применил несколько комбинаций ниже, и alike => не допустил ошибку go прочь

cmake -DOPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl/1.0.2d_1/include  -DOPENSSL_CRYPTO_LIBRARY=/usr/local/Cellar/openssl/1.0.2d_1/lib/libcrypto.dylib -DOPENSSL_SSL_LIBRARY=/usr/local/Cellar/openssl/1.0.2d_1/lib/libssl.dylib

поиск в Google не привел к новым идеям (большинство этих ошибок, похоже, исправлено с помощью опции cmake -DOPENSSL ..)

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 18 февраля 2020

Рассматривали ли вы редактирование проекта cmake?

Добавление следующих строк в CMakeLists.txt:

FIND_PACKAGE(OpenSSL)
if(${OpenSSL_FOUND})
  INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
endif()

И редактирование следующей строки для ссылки на OpenSSL

target_link_libraries(${PROJECT_NAME} jsoncpp curl websockets ssl crypto)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...