【问题标题】:Failed to locate OpenSSL dependency building restbed on windows无法在 Windows 上找到 OpenSSL 依赖项构建休息床
【发布时间】:2019-09-04 11:13:32
【问题描述】:

我正在尝试使用 cmake 3.15.2 在 Windows 10 上使用 openssl 编译 restbed。

我按照here提供的说明进行操作

因此安装了openssl,如下:

cd restbed\dependency\openssl
perl Configure shared VC-WIN64A
nmake
nmake test
nmake install

然后我用cmake构建restbed:

cmake -G "Visual Studio 15 2017 Win64" -DBUILD_EXAMPLES=YES -DBUILD_TESTS=YES ..

但我总是以这个错误结束:

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,发现大部分搜索到的文件都从我的计算机中丢失了。

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 安装中缺少的内容。

知道这里可能缺少什么吗?

谢谢!

【问题讨论】:

    标签: windows openssl 64-bit restbed


    【解决方案1】:

    这是另一个answer

    cd restbed/dependency/openssl
    ./config; make
    

    【讨论】:

      【解决方案2】:

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

      这里是the answer

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

      我无法通过在find_library 中更改他们的名称来使其工作,所以我只是评论了这些并添加了这两行 Findopenssl.cmake :

      set(ssl_LIBRARY_SHARED "${PROJECT_SOURCE_DIR}/dependency/openssl")
      set(crypto_LIBRARY_SHARED "${PROJECT_SOURCE_DIR}/dependency/openssl")
      

      有点脏,但效果很好。

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 2014-12-09
        • 1970-01-01
        • 2018-01-29
        • 2019-06-22
        • 2013-03-30
        • 1970-01-01
        • 2015-01-03
        • 1970-01-01
        相关资源
        最近更新 更多