Ошибка CMake: не удалось найти OpenSSL

Моя цель:

Я пытаюсь настроить брокера Mosquitto для использования веб-сокетов.

Предупреждения и ошибки:

https://docs.google.com/document/d/1HJ75NO1wBsnNfFFszeXP4p8re7m4gTE_CMbFoSswJJs/edit?usp=sharing

Программное обеспечение:

  • Windows 10 x64
  • libwebsockets-master
  • Cmake 3.6.2 win32
  • OpenSSL 1.1.0a
  • Visual Studio 14 2015 (с компилятором C ++)

Что я пробовал:

Я использую CMake gui, потому что я не очень хорошо знаком с командами. Я настраиваю источник и место назначения и устанавливаю следующие переменные как пути и пути к файлам соответственно:

  • OPENSSL_ROOT_DIR = OpenSSL-Win32
  • OPENSSL_LIBRARIES = OpenSSL-Win32 / lib или OpenSSL-Win32 / lib / openssl.lib
  • OPENSSL_CONF = bin \ openssl.cfg
  • OPENSSL_INCLUDE_DIR = OpenSSL-Win32 / включить / openssl

Я также попытался установить OPENSSL_LIBRARIES в файле CMkakeLists.txt libwesocket. Я использовал несколько разных версий CMake и OpenSSL. Я попытался открыть CMake с помощью командной строки VS (как администратор).

Ранее я создавал файл .sln со старым устаревшим OpenSSL, поэтому с компилятором нет проблем.

Я просмотрел вопросы здесь, здесь, здесь и здесь. Если это сводится к использованию командной строки специально для установки OPENSSL_ROOT_DIR, может ли кто-нибудь пролить свет на это, пожалуйста?


person Jnr    schedule 26.09.2016    source источник
comment
Не используйте CMake для OpenSSL. Он не может обрабатывать библиотеку. Библиотека не будет настроена, и у вас будут отсутствовать важные определения. CMake, похоже, не может получить CFLAGS право на стандартные флаги. Нет никакого способа сделать это правильно для OpenSSL. Вместо этого следуйте NOTES.WIN из корневого каталога OpenSSL.   -  person jww    schedule 26.09.2016
comment
Связано это с тем, что входит в толстые библиотеки в OS X: Build Multiarch OpenSSL on OS X. Я понимаю, что OS X - это не Windows и CMake, но он подробно описывает проблемы, которые могут возникнуть у вас. Вы должны правильно составить свой список файлов и даже правильно пометить флаги ассемблера. Вы также должны сделать все правильно, что помещается как в <openssl/opensslconf.h>, так и в <openssl/bn.h>.   -  person jww    schedule 26.09.2016


Ответы (2)


Раньше у меня была такая же проблема.

Попробуйте изменить путь OPENSSL_LIBRARIES на OpenSSL-Win32/lib/vc.

person Vinayak    schedule 17.01.2017

Я также столкнулся с той же ошибкой при сборке libwebsockets. Я добавил в cmake-gui следующую запись:

OPENSSL_ROOT_DIR = C: / OpenSSL-Win32

Я вообще не добавлял другие переменные OPENSSL, и казалось, что cmake смог их получить.

person Debby Mendez    schedule 04.04.2017