首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在windows上找不到OpenSSL依赖关系生成restbed

在windows上找不到OpenSSL依赖关系生成restbed
EN

Stack Overflow用户
提问于 2019-09-04 19:13:32
回答 2查看 691关注 0票数 2

我正在尝试使用cmake 3.15.2在windows10上编译restbed with openssl。

我按照here提供的说明操作

因此安装了openssl,如下所示:

代码语言:javascript
复制
cd restbed\dependency\openssl
perl Configure shared VC-WIN64A
nmake
nmake test
nmake install

然后我用cmake构建restbed:

代码语言:javascript
复制
cmake -G "Visual Studio 15 2017 Win64" -DBUILD_EXAMPLES=YES -DBUILD_TESTS=YES ..

但我总是会出现这样的错误:

代码语言:javascript
复制
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:49 (find_package)

尽管我在配置命令中使用了shared

我查了一下Findopenssl.cmake,发现我的电脑上找不到大多数搜索到的文件。

代码语言:javascript
复制
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" )

此外,它们中的大多数似乎都是linux路径。

我到处搜索,发现this question非常相似,但它是在debian而不是windows上工作的。我没有设法找到我的openssl安装中缺少的内容。

你知道这里可能遗漏了什么吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-05 16:06:04

我找到了问题的根源和解决方案。

这是the answer

由于openssl更改了libcrypto.liblibssl.lib的库,因此当前的Findopenssl.cmake无法找到它要查找的内容:libeay32.lib和`ssleay32.lib。

我不能仅仅通过在find_library中更改它们的名称来使其工作,所以我只注释了这些内容,并添加了这两行Findopenssl.cmake:

代码语言:javascript
复制
set(ssl_LIBRARY_SHARED "${PROJECT_SOURCE_DIR}/dependency/openssl")
set(crypto_LIBRARY_SHARED "${PROJECT_SOURCE_DIR}/dependency/openssl")

它有点脏,但效果很好。

票数 1
EN

Stack Overflow用户

发布于 2020-06-10 22:47:58

这是另一个answer

代码语言:javascript
复制
cd restbed/dependency/openssl
./config; make
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57787207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档