c++ - 尝试运行安装 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 ,但仍然收到相同的错误。如果您澄清我应该做什么,我将不胜感激。
解决方案
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 ./
推荐阅读
- javascript - Firestore 更新与合并 - 如何覆盖文档的一部分
- android - 获取通过 API 29+ 上的意图过滤器传递的文件
- angular - 模板解析错误:“mdb-icon”不是已知元素
- javascript - jsfiddle:如何将 JavaScript 块的加载方式更改为不换行(头部)
- typescript - Typescript 编写通用库
- db2 - db2 将数据导出到远程位置
- mongodb - Mongodb 不是从服务开始的
- ios - 无法识别的用户重复取消定期订阅
- c++ - 是否有使用同一类的另一个实例的类的设计模式?
- python - 我无法单击带有 selenium 的元素,它给了我错误元素不可交互