从源代码构建Qt静态,支持OpenSSL

时间:2016-04-22 13:01:56

标签: c++ qt ssl static

我按照https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW中所述的Qt静态构建说明进行操作。在我的Windows 10机器上运行脚本工作正常并静态构建Qt。但是,由于我需要OpenSSL支持,因此无法使用.ps脚本生成的静态构建编译程序。

因此,我将configure.bat脚本的.ps选项从-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

在静态Qt构建中启用OpenSSL支持,基于来自:

的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\中找到。

1 个答案:

答案 0 :(得分:0)

我将问题解释为:

  

如何从源代码构建Qt静态,支持OpenSSL支持   项目安装目标?

可能的方法之一是:

  • 静态Qt构建:configure -static -debug-and-release -openssl -I %OPENSSL_HOME%\include -L %OPENSSL_HOME%以及更多选项
  • 使用%OPENSSL_HOME%
  • 中的相同SSL链接项目可执行文件
  • 将相应的libeay32.dll和ssleay32.dll与其余可执行文件一起分发