Как исправить ошибку отсутствия библиотек в CMake?

Я настраиваю новый сервер, CMake 3.14.0-rc1 выдает мне сообщение об ошибке. я пробую некоторые решения, публикуемые здесь, но я не нахожу правильного.

"CMake Error at C:/Program Files/CMake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find OpenSSL (missing: OPENSSL_LIBRARIES)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  src/cmake/macros/FindOpenSSL.cmake:184 (find_package_handle_standard_args)
  CMakeLists.txt:92 (find_package)"

это сообщение. Я добавляю вручную недостающую запись, но не работаю. (Windows 10 и OpenSSL версии 1.1.1a не установлены.

спасибо всем может помочь мне для решения.


person d3s0x    schedule 14.02.2019    source источник
comment
Что вы подразумеваете под добавлением записи вручную? Добавить OPENSSL_LIBRARIES в командную строку? Он все еще установлен после этого? Он существует? Разве он не должен также найти заголовки? Это сработало? Вы установили OPENSSL_ROOT_DIR ?   -  person Matthieu Brucher    schedule 14.02.2019
comment
Почему бы не посмотреть FindOpenSSL.cmake, чтобы узнать, где он ищет в Windows (см. _OPENSSL_ROOT_PATHS). Также попробуйте запустить с --trace-expand   -  person rustyx    schedule 14.02.2019
comment
CMake автоматически находит правильный путь для OpenSSL. я просто ввожу отсутствующие OPENSSL_LIBRARIES с помощью кнопки «Добавить запись» в CMake   -  person d3s0x    schedule 14.02.2019
comment
CMake автоматически находит правильный путь для OpenSSL. я просто ввожу отсутствующие OPENSSL_LIBRARIES с помощью кнопки «Добавить запись» в CMake Это, вероятно, означает, что используемая вами версия openssl не поддерживается CMake, возможно, что-то изменилось в названии библиотеки или других сгенерированных файлов, которые не соответствует тому, что ожидает модуль поиска.   -  person drescherjm    schedule 14.02.2019


Ответы (2)


CMake автоматически вызывает функцию FindOpenSSL:

НайтиOpenSSL

Найдите библиотеку шифрования OpenSSL.
Этот модуль установит в вашем проекте следующие переменные:

OPENSSL_FOUND
В системе есть библиотека OpenSSL.

OPENSSL_INCLUDE_DIR
Включаемый каталог OpenSSL.

OPENSSL_CRYPTO_LIBRARY
Криптобиблиотека OpenSSL.

OPENSSL_SSL_LIBRARY
Библиотека OpenSSL SSL.

OPENSSL_LIBRARIES
Все библиотеки OpenSSL.

OPENSSL_VERSION
Устанавливается в $major.$minor.$revision$patch (например, 0.9.8s).

Однако OPENSSL_LIBRARIES отсутствует; обычно это означает, что openssl должен быть установлен в вашей среде разработки. Обычно вам нужен пакет devel.

person YSC    schedule 14.02.2019
comment
Нет функции FindOpenSSL. То, что вы цитируете, это из описания к FindOpenSSL.cmake скрипту, который обрабатывается find_package(OpenSSL) вызовом. В журнале ошибок в сообщении с вопросом четко указано, что такой вызов был выполнен. - person Tsyvarev; 14.02.2019
comment
@Tsyvarev верно, исправлено. - person YSC; 14.02.2019
comment
поэтому мне нужно открыть блокнотом файл FindOpenSSL.cmake и указать там правильный путь? - person d3s0x; 14.02.2019
comment
значит, мне нужно открыть блокнотом файл FindOpenSSL.cmake и указать там правильный путь? Нет, вы никогда не меняете этот файл. Вы можете установить переменные среды или переменные cmake, чтобы сообщить CMake, где вы установили openssl, если он не находится в том месте, где ищет модуль поиска. Вы сначала прокомментировали свой вопрос, заданный вам, если вы установили переменную среды OPENSSL_ROOT_DIR. - person drescherjm; 14.02.2019
comment
Я просто забыл изменить настройки x64 в CMake... спасибо за помощь! - person d3s0x; 24.02.2019

Перейдите на вкладку «Дополнительно» в Cmake и установите Openssl_root_dir.

person Excite Efect13    schedule 22.09.2019