c++ - Findopenssl.cmake 找不到 OpenSSL,编译 restbed,C++
问题描述
我正在尝试在 Debian 9.7 上使用 cmake 3.7.2 来编译 restbed,这是一个用于 Web 服务的 C++ 框架。
我按照自述文件的说明进行操作。他们是直截了当的。
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL=NO] ..
make install
make test
但是运行cmake时出现以下错误:
-- Found ASIO include at: /home/ben/Workspaces/C_Experiments/restbed/dependency/asio/asio/include
-- Found Catch include at: /home/ben/Workspaces/C_Experiments/restbed/dependency/catch/single_include
CMake Error at cmake/Findopenssl.cmake:23 (message):
Failed to locate OpenSSL dependency. see restbed/dependency/openssl;
./config shared; make all
Call Stack (most recent call first):
CMakeLists.txt:47 (find_package)
所以我检查了 Findopenssl.cmake,发现它在很多地方寻找图书馆。
find_library( ssl_LIBRARY_STATIC libssl.a ssleay32.lib HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
find_library( crypto_LIBRARY_STATIC libcrypto.a libeay32.lib HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
find_library( ssl_LIBRARY_SHARED libssl.so libssl.dylib ssleay32.dll HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
find_library( crypto_LIBRARY_SHARED libcrypto.so libcrypto.dylib libeay32.dll HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/out32dll" "${PROJECT_SOURCE_DIR}/dependency/openssl" "/usr/local/opt/openssl/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib" )
find_path( ssl_INCLUDE openssl/ssl.h HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/inc32" "${PROJECT_SOURCE_DIR}/dependency/openssl/include" "/usr/local/opt/openssl/include" "/usr/include" "/usr/local/include" "/opt/local/include" )
if ( ssl_LIBRARY_STATIC AND ssl_LIBRARY_SHARED AND crypto_LIBRARY_STATIC AND crypto_LIBRARY_SHARED )
set( OPENSSL_FOUND TRUE )
add_definitions( -DBUILD_SSL=TRUE )
if ( APPLE AND BUILD_SSL )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" )
endif( )
message( STATUS "Found OpenSSL include at: ${ssl_INCLUDE}" )
message( STATUS "Found OpenSSL library at: ${ssl_LIBRARY_STATIC}" )
message( STATUS "Found OpenSSL library at: ${ssl_LIBRARY_SHARED}" )
message( STATUS "Found Crypto library at: ${crypto_LIBRARY_STATIC}" )
message( STATUS "Found Crypto library at: ${crypto_LIBRARY_SHARED}" )
else ( )
message( FATAL_ERROR "Failed to locate OpenSSL dependency. see restbed/dependency/openssl; ./config shared; make all" )
endif ( )
我也找不到这些文件。我已经安装了 openssl,版本 1.1.0
我在这里缺少什么明显的东西?
谢谢
解决方案
Try using the cmake
command without brackets:
cmake -DBUILD_SSL=NO ..
推荐阅读
- c# - C# 如何将控件从一个 WinForm 传输到另一个 WinForm 并返回?
- angular - Angular 12 项目的错误
- powershell - 在 yaml 中如何从 powershell 脚本获取输出变量的值,然后将其传递给另一个模板
- swiftui - API数据初始化和存储错误
- python - 从不易分离的文本中提取现有单词
- c# - 找不到类型或命名空间名称 DBModel
- linux - 无法在 Debian 上安装 php7.2-bcmath
- svelte - Svelte contenteditable 未正确更新
- google-apps-script - Google Apps 脚本 doc.getBody().getPageWidth() 返回相同的数字,无论是纵向还是横向
- python - 使用 .gt() 选择日期