2016-04-22 59 views
0

我遵循https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW中所述的Qt靜態構建指示信息。在我的Windows 10機器上運行腳本可以正常工作並靜態構建Qt。但是,由於我需要OpenSSL支持,因此無法使用.ps腳本生成的靜態內部版本編譯我的程序。從源代碼構建Qt靜態啓用OpenSSL支持

因此,我略微改變了.ps腳本的configure.bat選項從-no-openssl

-openssl-linked 
-I C:\OpenSSL-Win32\include 
-L C:\OpenSSL-Win32\lib\VC\static 
OPENSSL_LIBS="-lUser32 -lAdvapi32 -lGdi32 -lCrypt32"    
OPENSSL_LIBS_DEBUG=-"lssleay32MTd -llibeay32MTd" 
OPENSSL_LIBS_RELEASE="-lssleay32MT -llibeay32MT 

使OpenSSL的支持靜態的Qt構建的基礎上,從anwseres:

QT https SSL support for static QT static program build - getting 'Protocol "https" is unknown'

Is there any way to building static Qt with static OpenSSL?

運行腳本現在在make install步驟中不會產生進一步的指定錯誤。 -lUser32 -lAdvapi32 -lGdi32 -lCrypt32庫不在我的OpenSSL-Win32安裝的任何子文件夾中,但可以在C:\Windows\System32\中找到。

+0

如果你只是刪除'-no-openssl'它將恢復到默認值, h是使用SSL提供的平臺 – dtech

回答

0

我解釋的問題是:

如何建立Qt的從源代碼實現OpenSSL的支持在 工程安裝目標靜態的?

一種可能的方式是:

  • 靜態Qt的構建:configure -static -debug-and-release -openssl -I %OPENSSL_HOME%\include -L %OPENSSL_HOME%和更多的選擇
  • 鏈接項目可執行文件位於%OPENSSL_HOME%
  • 相同的SSL分發相應的libeay32.dll和ssleay32.dll一起與其餘的可執行文件