Я пытаюсь установить программное обеспечение, которое использует cmake для установки себя, когда я даю в commandlin cmake ..
это дает мне следующую ошибку в этом файле: CMakeLists.txt -------- строка ---> find_package ( ТРЕБУЕТСЯ OpenSSL): -
cmake ..
-- Could NOT find Git (missing: GIT_EXECUTABLE)
ZLib include dirs: /usr/include
ZLib libraries: /usr/lib/arm-linux-gnueabihf/libz.so
Compiling with SSL support
CMake Error at /usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/local/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
/usr/local/share/cmake-2.8/Modules/FindOpenSSL.cmake:313 (find_package_handle_standard_args)
CMakeLists.txt:436 (find_package)
Вот часть файла CMakeLists.txt, где возникает ошибка: ------
#
# OpenSSL
#
if (WITH_SSL)
message("Compiling with SSL support")
if (USE_CYASSL)
# Use CyaSSL as OpenSSL replacement.
# TODO: Add a find_package command for this also.
message("CyaSSL include dir: ${CYASSL_INCLUDE_DIRS}")
message("CyaSSL libraries: ${CYASSL_LIB}")
# Additional to the root directory we need to include
# the cyassl/ subdirectory which contains the OpenSSL
# compatability layer headers.
foreach(inc ${CYASSL_INCLUDE_DIRS})
include_directories(${inc} ${inc}/cyassl)
endforeach()
list(APPEND LIB_LIST ${CYASSL_LIB})
else()
# TODO: Add support for STATIC also.
find_package(OpenSSL REQUIRED)
message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
include_directories(${OPENSSL_INCLUDE_DIR})
list(APPEND LIB_LIST ${OPENSSL_LIBRARIES})
endif()
endif(WITH_SSL)
http://www.opensource.apple.com/source/OpenSSL/OpenSSL-7.1/openssl/INSTALL?txt
Теперь я установил Openssl, здесь: ----
ssl header is here -- > /usr/local/ssl/include/openssl/
ssl library is here -- > /usr/local/ssl/lib/libssl.a
/usr/local/ssl/lib/libcrypto.a
openssl is here -- > /usr/local/ssl/bin
Я установил свой .profile как: ----
export LD_LIBRARY_PATH=/usr/local/ssl/include/openssl:/usr/lib:/usr/local/lib:/usr/lib/pkgconfig:/usr/local/include/wx-2.8/wx:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
export OPENSSL_ROOT_DIR=/usr/local/ssl
export OPENSSL_LIBRARIES=/usr/local/ssl/lib/
PATH = /usr/local/ssl/bin:$PATH
Как устранить эту ошибку?
изменить: -
Получение этой ошибки
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
dso_dlfcn.c:(.text+0x10): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x24): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x30): undefined reference to `dlclose'
openssl-devel
на Centos 7, так что вы бы сделалиsudo yum install openssl-devel
Если вы используете Ubuntu, запустите
sudo apt install libssl-dev
.источник
исправил это на macOS, используя
источник
OPENSSL_LIBRARIES
это выходная переменная, а не вход. См. Github.com/Kitware/CMake/blob/…Пожалуйста, установите openssl по ссылке ниже:
https://code.google.com/p/openssl-for-windows/downloads/list,
затем установите переменные ниже:
источник
-DBUILD_TESTING=OFF -DCMAKE_USE_OPENSSL=ON
Та же проблема и исправлена на моем centos 6.5 с помощью следующей команды.
источник
sudo apt install libssl-dev
работает на ubuntu 18.04.источник
Если вы можете использовать pkg-config :
pkg_search_module()
могу найти для вас OpenSSL.источник
у вас есть файл FindOpenSSL.cmake в модуле cmake (путь usr / shared.cmake-3.5 / modules) # Искать в OpenSSL
источник
Примечание для пользователей Fedora 27: мне пришлось установить
openssl-devel
пакет дляcmake
успешного запуска .sudo dnf install openssl-devel
источник
Просто для удовольствия опубликуйте альтернативный рабочий ответ на вопрос OP:
источник
@ Морвенн права. Вам необходимо настроить openssl DIR. Перед этим вам может потребоваться убедиться, что он у вас есть. Вы должны проверить, есть ли оно у вас. сначала запустите
openssl version
, затем, если он у вас есть, вы можетеwin + r
запустить,openssl
и вы найдете основной каталог, поскольку он может не называться openssl в вашей системе.источник
Это то, что я добавил в
CMakeList.txt
(что сработало):источник