【问题标题】:Openssl libeay32.dll not found troubles when compiling a build CMAKEOpenssl libeay32.dll在编译构建CMAKE时未发现问题
【发布时间】:2017-12-06 03:48:56
【问题描述】:

您好,我正在尝试使用 github 上的these instructions 为 Windows 编译一个程序。我已经安装了所需的依赖项(VS2017、cmake、cuda 8、amd app sdk 3.0)。

我已将所需的 xmr-stak-dep.zip 放在我的 C:/ 文件夹和命令树中。确实与显示的内容一致。这些文件都可以访问。

  C:\xmr-stak-dep>tree .

  Folder PATH listing for volume Windows
  Volume serial number is XX02-XXXX
  C:\XMR-STAK-DEP
  ├───hwloc
  │   ├───include
  │   │   ├───hwloc
  │   │   │   └───autogen
  │   │   └───private
  │   │       └───autogen
  │   └───lib
  ├───libmicrohttpd
  │   ├───include
  │   └───lib
  └───openssl
      ├───bin
      ├───include
      │   └───openssl
      └───lib

问题是当程序最终通过运行以下命令构建时;执行程序时,我收到错误 libeay32.dll & ssleay32.dll 找不到。下面的命令确实表明它确实将 cmake 设置为包含这些 ddl 文件的路径。

 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat" 

 set CMAKE_PREFIX_PATH=C:\xmr-stak-dep\hwloc;C:\xmr-stak-dep\libmicrohttpd;C:\xmr-stak-dep\openssl

 mkdir build

 cd build

我发现 this 帖子可能显示了如何解决此问题,但我不确定如何在我的配置下使用该命令,因为这是我第一次编译 Windows 程序。

作为说明,我使用来自 here 的 dev 分支作为源代码。

【问题讨论】:

    标签: visual-studio compilation cmake


    【解决方案1】:

    您的编译没有问题。只是您的程序依赖于那些 DLL。当试图找到程序所依赖的 DLL 时,Windows 只会在某些地方查找。

    本文介绍了 windows 如何查找 DLL:https://docs.microsoft.com/en-us/cpp/build/search-path-used-by-windows-to-locate-a-dll

    最简单的选择是将 openssl .dll 复制到 .exe 旁边的目录中,或者将包含它们的目录添加到您的路径中。后者可以通过set PATH=C:\XMR-STAK-DEP\openssl\lib;%PATH% 临时完成(假设DLL 在openssl\lib 下,否则替换openssl\bin

    【讨论】:

      猜你喜欢
      • 2018-07-17
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多