【问题标题】:CMake Error: Could Not Find OpenSSLCMake 错误:找不到 OpenSSL
【发布时间】:2016-09-26 07:17:36
【问题描述】:

我的目标:

我正在尝试将 Mosquitto 代理配置为使用 websocket。

警告和错误:

https://docs.google.com/document/d/1HJ75NO1wBsnNfFFszeXP4p8re7m4gTE_CMbFoSswJJs/edit?usp=sharing

软件:

  • Windows 10 x64
  • libwebsockets-master
  • Cmake 3.6.2 win32
  • OpenSSL 1.1.0a
  • Visual Studio 14 2015(带有 C++ 编译器)

我的尝试:

我正在使用 CMake gui,因为我不太熟悉这些命令。我配置了源和目标,并将以下变量分别设置为路径和文件路径:

  • OPENSSL_ROOT_DIR = OpenSSL-Win32
  • OPENSSL_LIBRARIES = OpenSSL-Win32/lib OpenSSL-Win32/lib/openssl.lib
  • OPENSSL_CONF = bin\openssl.cfg
  • OPENSSL_INCLUDE_DIR = OpenSSL-Win32/include/openssl

我也尝试在 libwesocket 的 CMkakeLists.txt 文件中设置 OPENSSL_LIBRARIES。我使用了多个不同版本的 CMake 和 OpenSSL。我尝试使用 VS 命令行(以管理员身份)打开 CMake。

我之前使用过时的 OpenSSL 构建了一个 .sln 文件,因此编译器没有问题。

我查看了herehereherehere 的问题。如果归结为使用命令行专门设置​​ OPENSSL_ROOT_DIR,有人可以对此有所了解吗?

【问题讨论】:

  • 不要不要将 CMake 用于 OpenSSL。它无法处理库。该库将不会配置,您将缺少关键定义。 CMake 似乎无法将 CFLAGS 用于股票标志。没有办法让它适合 OpenSSL。相反,请遵循 OpenSSL 根目录中的 NOTES.WIN
  • 相关,这是 OS X 上的胖库中的内容:Build Multiarch OpenSSL on OS X。我意识到 OS X 不是 Windows 和 CMake,但它详细介绍了您将遇到的问题。你必须让你的文件列表正确,甚至汇编程序标志也正确。你还必须把所有的东西都放进<openssl/opensslconf.h><openssl/bn.h>

标签: openssl cmake-gui libwebsockets


【解决方案1】:

我以前也遇到过同样的问题。

尝试将OPENSSL_LIBRARIES 路径更改为OpenSSL-Win32/lib/vc

【讨论】:

    【解决方案2】:

    我在构建 libwebsockets 时也遇到了同样的错误。我在 cmake-gui 中添加了以下条目:

    OPENSSL_ROOT_DIR = C:/OpenSSL-Win32

    我根本没有添加其他 OPENSSL 变量,似乎 cmake 能够派生这些变量。

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2020-10-17
      • 2017-09-25
      相关资源
      最近更新 更多