静态编译 Qt5.7.0 (含 openssl 支持)

时间:2022-09-19 21:48:02

关于Qt静态便宜的环境等,请先参见 Win10 + VS2015 下编译 Qt5.6.0 。

首先编译 openssl 。我这里用的版本是 openssl 1.0.2j (新的1.1版本的便宜稍有不同,详见 openssl 的文档)。openssl编译的bat脚本如下:

REM Initialize env for msvc  cl compiler
SET PATH=C:\Windows;C:\Windows\system32
REM Set up \Microsoft Visual Studio , where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 REM Update include & lib to support xp win sdk .1A
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
SET CL=/D_USING_V120_SDK71_;%CL% SET PERL_DIR=C:\Perl64 SET PATH=%PERL_DIR%\bin;%PATH% perl configure VC-WIN32 no-asm --prefix=d:/openssl/dir
ms\do_ms nmake -f ms\nt.mak
nmake -f ms\nt.mak install

然后更改Qt的编译脚本,便宜时引入openssl:

REM ********** Initialize env for msvc  cl compiler **********
SET PATH=C:\Windows;C:\Windows\system32
REM Set up \Microsoft Visual Studio , where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 REM ********** Update include & lib to support xp win sdk .1A **********
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
SET CL=/D_USING_V120_SDK71_;%CL% REM ********** OpenSSL 1.0. **********
SET OPENSLLDIR=D:\CollabPDF\windows\vendors\openssl
SET PATH=%OPENSLLDIR%\bin;%PATH%
SET INCLUDE=%OPENSLLDIR%\include;%INCLUDE%
SET LIB=%OPENSLLDIR%\lib;%LIB% REM ********** 3rd party build tools binaries: ruby, perl, python **********
SET PATH=C:\Ruby22-x64\bin;C:\Perl64\bin;C:\Python27;%PATH% REM ********** Set up qt source env **********
SET _ROOT=E:\qt-everywhere-opensource-src-5.7.
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET QMAKESPEC=win32-msvc2015
SET _ROOT= REM Generate makefile
configure.bat -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -target xp -prefix D:\Qt\Qt5.7.0-static-win32-vs2015-xp -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32 -lgdi32 -luser32" -no-qml-debug -no-angle -nomake tests -nomake examples -mp

其他问题:

  1. 我第一次尝试使用 openssl 1.1 配合qt进行编译,但报了一个错。猜测可能是因为openssl 1.1版本去除了sslv2支持。所以又改为使用openssl 1.0.2了。
  2. OPENSSL_LIBS需要引用 gdi32。因为openssl中用到了其中的函数(我没有实际测试是否需要user32,编译太慢,以防万一也加上了)。

静态编译 Qt5.7.0 (含 openssl 支持)的更多相关文章

  1. vs2010静态编译qt5&period;1&period;0

    本博文参考 http://blog.chinaunix.net/uid-20690340-id-3802197.html 静态库在链接的时候直接写入二进制文件里,这样的好处在于发布的时候无需附带dll ...

  2. VS2015编译Qt5&period;7&period;0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  3. linux下编译qt5&period;6&period;0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. linux下编译qt5&period;6&period;0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  5. linux下编译qt5&period;6&period;0静态库(使用&period;&sol;configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt&period;conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  6. VS2010编译Qt5&period;4&period;0静态库

    http://www.kavenblog.com/?p=375 1.Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DL ...

  7. Qt 5&period;6&period;2 静态编译&lpar;VS2013 x86 target xp openssl icu webkit&rpar;

    在去年4月份的时候,我写过一篇动态编译Qt5.6.0的文章,当时是为了解决webkit不能在winxp下面跑的问题,动态编译有一个缺点,就是发布的时候,要携带一大堆dll,使安装包的体积增大.而静态编 ...

  8. Win10 &plus; VS2015 下编译 Qt5&period;6&period;0

    近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 .由于项目需要兼容 Windows xp ,所以需要自己编译 Qt .这里大致整理一下编译的过程. 安装 Active ...

  9. centos6编译安装zabbix3&period;0和中文支持整理文档

    编者按: 最近公司部分业务迁移机房,为了更方便的监控管理主机资源,决定上线zabbix监控平台.运维人员使用2.4版本的进行部署,个人在业余时间尝鲜,使用zabbix3.0进行部署,整理文档如下,仅供 ...

随机推荐

  1. 关于Java导出100万行数据到Excel的优化方案

    1>场景 项目中需要从数据库中导出100万行数据,以excel形式下载并且只要一张sheet(打开这么大文件有多慢另说,呵呵). ps:xlsx最大容纳1048576行 ,csv最大容纳1048 ...

  2. COJ966 WZJ的数据结构(负三十四)

    WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u  ...

  3. MySQL跨表更新字段 工作记录

    工作中遇到两表查询,从user表中获取用户唯一id字段 写入到另外一张qiuzu表中的uid字段中; 二者可以关联起来的只有用户的手机号码tel字段; 了解需求后数据量稍多,不可能一个一个的手动修改 ...

  4. Domain Model(领域模型)

    Domain Model(领域模型) 上一篇:<DDD 领域驱动设计-如何 DDD?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply. ...

  5. node&period;js之模块

    node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...

  6. window&period;requestAnimationFrame&lpar;&rpar; &comma;做逐帧动画,你值得拥有

    window.requestAnimationFrame() 方法告诉浏览器您希望执行动画,并请求浏览器调用指定的函数在下一次重绘之前更新动画.该方法使用一个回调函数作为参数,这个回调函数会在浏览器重 ...

  7. element-ui 修改源码实践 --tranfer

    1.element-ui 地址:https://github.com/ElemeFE/element 2.修改elelment-ui版本:2.2.2(请选择和项目相对应的版本) 3.修改内容:穿梭框组 ...

  8. &lbrack;日志&rsqb;SAP S&sol;4 HANA 启动与关闭的顺序

    注意 如果是非正式版的话 修改了日期了  需要重启一下应用和数据库才可以, S/4 HANA 启动步骤 先启动HANA: 在终端里输入 su - hdbadm HDB start 再启动S4 su - ...

  9. mac环境下支持PHP调试工具xdebug,phpstorm监听

    先让php支持xdebug 方式一: https://xdebug.org/download.php 下载相应的xdebug  可以到http://xdebug.org/wizard.php 把php ...

  10. 【BZOJ4568】幸运数字(线性基,树链剖分,ST表)

    [BZOJ4568]幸运数字(线性基,树链剖分,ST表) 题面 BZOJ Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市 ...