拿来主义——QT静态编译配置
如何快速完成QT静态编译的配置(windows)↓↓↓
- 0.写在前面
- 1.下载原版QT
- 2.开始“拿来”——下载别人编译好的
- 2.1检查自己的QT路径
- 2.2下载已经编译好的QT
- 2.2安装与配置
- 2.2.1复制qt.conf文件
- 2.2.2编辑qmake.conf文件
- 2.2.3复制qmlscene.exe
- 2.2.4复制Qt5Core.dll
- 3.在creator中选取已经配置好的库
- 3.大功告成
0.写在前面
QT的动态链接编译着实是有点坑,最近我遇到了在win7_32环境下编译后在win10_64不能运行的问题,反过来在win10下使用32位mingw编译后却可以在win7运行,当真是无语至极,迫不得已尝试静态编译,那么废话不多说,接下来介绍如何最快地配置QT静态编译环境,测试版本QTcreater5.10.1+Qt5.12.1 MinGW。理论上其他版本是一个方法。
1.下载原版QT
首先的首先自然要有一个原版QT环境,这个教程很多了,我就不多说,请自行下载安装,注意如果想要保住程序通用性的话,建议在win7_32位下使用32位的QT库。最新版本的QT好像不自带32位mingw了,不过没关系,我们不用他原来的。
2.开始“拿来”——下载别人编译好的
网上有些教程讲静态编译是展示如何自行编译qt源码,这种方法一则流程繁复命令冗长容易出错,二则编译QT源码实在耗时太长,有兴趣的可以自己尝试。我们在这里使用别人编译好的来用,从而省去了最为耗时的一步。感谢各路大神的劳动成果。
2.1检查自己的QT路径
如果你已经安装好了QT并且在安装的时候选择了配套安装mingw的话,那么此时你应当有这样一个路径:
其中我这里的Qt5即为安装根目录。
2.2下载已经编译好的QT
自行在网络上寻找QT静态编译版本,比如说我的静态编译版本便来自QTCN开发网
下载下来后一般最少有两个文件夹,带其他如mysql支持和openssl的可能有其他文件夹。
其中mingw开头的文件夹和原版的作用雷同,Qt开头static结尾的文件夹就是我们主要需要的。
将他们解压。
2.2安装与配置
安装很简单,将解压后得到的至少两个文件夹复制到原版QT的目录下,复制后如下:
复制完后还要进行配置,不然直接在creator里添加路径会报错。
2.2.1复制qt.conf文件
在原动态库下的bin/文件夹中找到qt.conf文件,将它复制到静态库下的bin/文件中,这样来让qt“识别”你这个另外加进来的库。
2.2.2编辑qmake.conf文件
在根目录\5.10.1\mingw73_32_release_static\mkspecs\win32-g++下找到这个文件,找到 QMAKE_LFLAGS_DLL
将后面都改成 -static
再加一行 QMAKE_LFLAGS
后面也改成 -static
在新版本QT中没有这些属性,他们都在另一个文件中,被"include"了进来,如果找不到请根据具体路径找到文件进行编辑,一般编译好放出来下载的qt静态库这里都是改好的。
改完后文件内容如下:
2.2.3复制qmlscene.exe
在原动态库bin文件夹下复制这个文件到静态库bin文件夹下,否则creator会报qmlscene未安装。
2.2.4复制Qt5Core.dll
在原动态库bin文件夹下复制该文件到静态库lib文件夹下,否则报缺失错误。
该步存疑,我在安装的时候没有复制该文件也编译成功了,网上其他讲本机编译源码的教程有说要复制这个,可能是旧版本的原因。
3.在creator中选取已经配置好的库
打开creator,点击菜单栏工具>选项>kits,或者选项里面的“构建与运行”,如下:
在该窗口上如下操作:
如果此前配置步骤做的正确的话,到这里就可以正确导入库,但是还差一步,使用他人编译好的静态库,最好将编译器和调试器设置为配套的mingw,就是我们一直没有使用的另一个不带static的文件夹,如果没有设置的话,在编译过程中可能会报错。添加两器就不多说了,编译器为g++,调试器为gdb,在bin文件夹下找到添加就行。
3.大功告成
到这里,静态库就算安装完成了,接下来就可以使用这个套件进行编译,注意使用该配置的套件只能进行release编译,debug会报错,而且和原动态库不能混用,也可能是我两个mingw版本有差别的原因,我还是建议将静态编译只作为最后一步在虚拟机里面编译一下就好,平常的编码使用动态库进行debug和release。
拿来主义——QT静态编译配置相关推荐
- Qt 静态编译(5.15.2 MinGW 32-bit)
Qt 静态编译(5.15.2 MinGW 32-bit) 文章目录 Qt 静态编译(5.15.2 MinGW 32-bit) 摘要 1 编译前准备 1.1 编译环境准备 系统环境 Qt 版本 gcc ...
- qt 静态编译 -- 生成exe单文件 别的电脑可以直接用
qt 静态编译 收集 https://github.com/last2win/qt-5.13 Qt最新版5.13在Windows环境VS 2017 64位静态编译完成的结果 此仓库很大,建议直接下载压 ...
- windows下 Qt 静态编译
似乎一直没有静态编译Qt的需求:一不在没有管理员权限的机器上使用,二不制作绿色软件,三....动态编译工作得很好,再配合 nsis 制作一个安装包,有什么必要静态编译呢? 但论坛中似乎总是不停有人问到 ...
- linux下qt静态编译_自由出土文物的空间_百度空间
linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译 2012-04-09 13:10 测试通过,贴一下过程,仅用来 ...
- Qt 静态编译后的exe太大, 可以这样压缩.
1. 下载PECompact 下载地址:http://download.csdn.net/download/sniper_bing/7669247 , 不行大家就去baidu搜索下载就可以了这个是绿 ...
- Qt 静态编译支持GUI(含qxcb)
1.关键是configure的选项,参考如下(重点是xcb的部分) ./configure -confirm-license -opensource -debug-and-release -stati ...
- CentOS编译安装Qt(Qt可使用静态编译编译器)
CentOS编译安装Qt(Qt可使用静态编译编译器) 文章目录 前言 下载Qt源码 编译安装--以4.7.4为例 安装QtCreator 设置编译器 附加--Windows Qt静态编译的方法(以5. ...
- Qt5.14.2MinGW-32静态编译及压缩过程配置教程
目录 下载 下载Qt5.14.2 下载upxn 下载Python2 安装 检查配置 检查perl版本 检查python版本 静态编译 配置 编译 安装 新增静态编译环境 添加Qt Version 添加 ...
- 记录下 QT Linux 静态编译遇到的坑
记录下 QT Linux 静态编译遇到的坑 记录下 QT Linux 静态编译遇到的坑 - 貘吃馍的日志 - 网易博客 http://qbaok.blog.163.com/blog/static/10 ...
最新文章
- 第39-43课 thinkphp5完成商品会员价格功能(后置勾子afterInsert)
- 【独家】IT自由职业者是怎么样的感受和体验
- Codeforces Round #188 (Div. 1) B. Ants 暴力
- 是时候对XSLT说“Goodbye”了吗?
- Channel的几种状态
- linux-安装jdk
- unity 安卓 后台运行_iOS14多任务界面放出,类似iPad,实现安卓锁定后台的功能?...
- 【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护
- Java返回int型的空值_使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法...
- python列表的小东西_小谈python里 列表 的几种常用用法
- 随想录(fpga处理图像的优缺点)
- Entering emergency mode . Exit the shell to continue . Type journa lctl to view system logs .
- 知道创宇云防御平台通过2021上半年可信云安全运营中心能力评估
- 基于UEBA的用户上网异常行为分析
- Linux--问题1--从用户态进入内核态
- 阿里云大数据平台DataWorks(原DataX)
- 人生路上前进的方向----有几条线贯穿自己的人生
- 如何理解对数似然损失函数
- kohana php版本,kohana框架的入门学习 2.0版本的
- Clickhouse副本与分片
热门文章
- 不熬夜,不修仙,B站打怪升级脚本一键搞定!
- python拦截数据包_httphttps,python抓包知多少
- Linux 重启 PHP-FPM 命令
- PerfDog:app性能测试工具 Android+iOS
- Java教程之mysql分库分表方案
- linux cut -b用法,Linux cut 命令详解
- Java中Iterator用法
- C++迭代器(iterator)用法
- remote: username : Incorrect username or password (access token) fatal: Authentication failed for
- 如何在Vim中移动到行尾?