2016-04-22 60 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一起与其余的可执行文件