2016-09-26 468 views
1

我的目的:CMake的错误:找不到OpenSSL的

我想配置Mosquitto经纪人使用WebSockets。

警告和错误:

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 2015年14(与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 /包含/ OpenSSL的

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

我以前建立了一个.sln文件,它带有较旧的过时的OpenSSL,所以编译器没有问题。

我看过问题herehereherehere。如果它归结为使用命令行专门设置​​OPENSSL_ROOT_DIR,请问有人可以点亮一下吗?

+0

请不要使用CMake for OpenSSL。它无法处理图书馆。该库不会被配置,您将缺少关键定义。 CMake似乎无法获得库存标志的'CFLAGS'权限。它没有办法为OpenSSL做好准备。相反,请遵循根目录OpenSSL中的***'NOTES.WIN' ***。 – jww

+0

相关的,这是OS X上的胖库:[OS X上的Build Multiarch OpenSSL](http://stackoverflow.com/q/25530429)。我意识到OS X不是Windows和CMake,但它会详细说明你将遇到的问题。你必须正确地得到你的文件列表,甚至汇编程序的标志也是正确的。你也必须把所有的东西都放到''和''中。 – jww

回答

0

我以前有过同样的问题。

尝试更改OPENSSL_LIBRARIESOpenSSL-Win32/lib/vc的路径。

0

构建libwebsockets时,我也遇到了同样的错误。我加入的cmake桂以下条目:

OPENSSL_ROOT_DIR = C:/OpenSSL-Win32

我根本不添加其他OPENSSL变量,它似乎像cmake的是能够得到这些。