Qt:Qt 5.* &vs2015 编译静态库版本

简介

静态编译qt5.6 、静态编译qt5.7、 静态编译qt5.8

安装Qt

Qt官网下载Qt安装包
这里写图片描述
安装Qt和源码,一定要勾选source选项
这里写图片描述
添加bin到系统变量
这里写图片描述

工具

需要python3和 perl、 vs2015 第三方工具,到官方下载安装
这里写图片描述

在命令行测试工具是否安装成功
这里写图片描述

configue

首先修改文件C:\Qt\Qt5.6.2\5.6\Src\qtbase\mkspecs\common\msvc-desktop.conf 把MD替换为MT静态编译
这里写图片描述

这里写图片描述

然后上面打开的终端cd命令跳到Qt源码目录 ,输入下面命令

5.6

configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "C:\qt\static-vs2015-qt" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -target xp -qt-freetype -qml-debug -no-angle -nomake tests -nomake examples

5.8

configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "C:\qt\static-vs2015-qt" -qt-sqlite  -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -qml-debug -no-angle -nomake tests -nomake examples

5.8需要把-qt-sql-sqlite 改为-qt-sqlite ,从5.7.0开始源码里configure已经去掉了-target xp这个选项的支持了

nmake

这里写图片描述
有时候生成的pri文件有问题(获取cl版本时截取的字符串有问题),需要手动修改下
这里写图片描述
这里写图片描述

修改如下,如果pri文件没有报错,就不用修改

CONFIG+= debug static rtti no_plugin_manifest directwrite qpa
host_build {
    QT_ARCH = i386
    QT_TARGET_ARCH = i386
} else {
    QT_ARCH = i386
}
QT_CONFIG += minimal-config small-config medium-config large-config full-config debug_and_release build_all release debug static zlib gif jpeg png freetype harfbuzz build_all accessibility opengl dbus audio-backend directwrite native-gestures qpa concurrent
#versioning 
QT_VERSION = 5.6.2
QT_MAJOR_VERSION = 5
QT_MINOR_VERSION = 6
QT_PATCH_VERSION = 2

QT_EDITION = OpenSource
QMAKE_TARGET_OS = xp
QT_DEFAULT_QPA_PLUGIN = qwindows
QT_CL_MAJOR_VERSION = 19
QT_CL_MINOR_VERSION = 00
QT_CL_PATCH_VERSION = 24210

编译

nmake编译

这里写图片描述
编译5.7和5.8时可能会遇到这个问题,把qtuiohandler.cpp文件改为带BOM的utf-8编码就可以了

安装

nmake install

配置Qt Creator

添加Qt版本,提示qmlscene未安装警告,把以前的qmlscene.exe拷贝到静态库中的bin文件夹即可
这里写图片描述
添加构建套件
这里写图片描述

引用

http://doc.qt.io/qt-5/configure-options.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
编译 Qt 5.12.12 源码时,需要先编译 OpenSSL 库,并将其加入 Qt编译选项中。以下是静态编译 Qt 5.12.12 包括 OpenSSL 的步骤: 1. 下载并编译 OpenSSL 库 您可以从 OpenSSL 官网下载最新的源码包,例如 `openssl-1.1.1i.tar.gz`。下载后,解压缩并进入目录,执行以下命令进行编译: ``` ./config no-shared --prefix=/path/to/openssl make && make install ``` 其中,`/path/to/openssl` 为您安装 OpenSSL 的路径。 2. 下载并解压 Qt 5.12.12 源码 您可以从 Qt 官网下载 Qt 5.12.12 的源码包,例如 `qt-everywhere-src-5.12.12.tar.xz`。下载后,解压缩至任意目录。 3. 配置 Qt编译选项 进入 Qt 源码目录,执行以下命令进行配置: ``` ./configure -static -prefix /path/to/qt -openssl-linked OPENSSL_PREFIX=/path/to/openssl -no-openssl ``` 其中,`/path/to/qt` 为您要安装 Qt 的路径,`/path/to/openssl` 为您安装 OpenSSL 的路径。 此命令中,`-static` 表示静态编译,`-prefix` 指定 Qt 安装路径,`-openssl-linked` 表示链接 OpenSSL 库,`OPENSSL_PREFIX` 指定 OpenSSL 的安装路径,`-no-openssl` 表示不使用 Qt 自带的 OpenSSL 库。 4. 编译 Qt 执行以下命令进行编译: ``` make -j4 ``` 其中,`-j4` 表示使用 4 个线程进行编译,可以根据自己的 CPU 核心数进行调整。 5. 安装 Qt 执行以下命令进行安装: ``` make install ``` 此命令会将编译好的 Qt 安装至指定路径。 至此,静态编译 Qt 5.12.12 并包括 OpenSSL 完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值