首页 > 解决方案 > 尝试运行安装 Socket.IO C++ 客户端的第 3 步时收到有关 OpenSSL 的错误

问题描述

我想从https://github.com/socketio/socket.io-client-cpp安装 Socket.IO C++ 客户端,但是按照https://github.com/socketio/socket.io的步骤我遇到了一些困难-client-cpp/blob/master/INSTALL.md。我已成功安装 Boost 版本 1_73_0(第 1 步)并运行第 2 步。Boost 安装在/Users/Home/Documents/boost_1_73_0. socket.io C++ 客户端位于/Users/Home/Documents/socket.io-client-cpp

当我使用此代码运行第 3 步时:

(base) MacBook-Pro-7:socket.io-client-cpp Home$ cmake -DBOOST_ROOT:STRING=/Users/Home/Documents/boost_1_73_0 -DBOOST_VER:STRING=1_73_0 ./

我收到以下错误:

-- not define build type, set to release
CMake Error at CMakeLists.txt:23 (find_package):
  find_package called with invalid argument "1_73_0"


-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR) 
-- Configuring incomplete, errors occurred!
See also "/Users/Home/Documents/GitHub/socket.io-client-cpp/CMakeFiles/CMakeOutput.log".

我也尝试brew install openssl在目录中安装 openssl ,但仍然收到相同的错误。如果您澄清我应该做什么,我将不胜感激。

标签: c++node.jscmakesocket.ioopenssl

解决方案


BOOST_VER命令行中缓存变量的内容作为参数cmake提供给 CMake 的命令:find_package

1_73_0

但是,根据find_package文档,格式必须使用句点来分隔版本组件:

[version]参数请求找到的包应该兼容的版本(格式为major[.minor[.patch[.tweak]]]

只需更改cmake命令行以符合所需的版本格式:

cmake -DBOOST_ROOT:STRING=/Users/Home/Documents/boost_1_73_0 -DBOOST_VER:STRING=1.73.0 ./

推荐阅读