2016-09-26 58 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的是能夠得到這些。