如何快速完成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静态编译配置相关推荐

  1. 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 ...

  2. qt 静态编译 -- 生成exe单文件 别的电脑可以直接用

    qt 静态编译 收集 https://github.com/last2win/qt-5.13 Qt最新版5.13在Windows环境VS 2017 64位静态编译完成的结果 此仓库很大,建议直接下载压 ...

  3. windows下 Qt 静态编译

    似乎一直没有静态编译Qt的需求:一不在没有管理员权限的机器上使用,二不制作绿色软件,三....动态编译工作得很好,再配合 nsis 制作一个安装包,有什么必要静态编译呢? 但论坛中似乎总是不停有人问到 ...

  4. linux下qt静态编译_自由出土文物的空间_百度空间

    linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译 2012-04-09 13:10 测试通过,贴一下过程,仅用来 ...

  5. Qt 静态编译后的exe太大, 可以这样压缩.

    1. 下载PECompact 下载地址:http://download.csdn.net/download/sniper_bing/7669247 ,  不行大家就去baidu搜索下载就可以了这个是绿 ...

  6. Qt 静态编译支持GUI(含qxcb)

    1.关键是configure的选项,参考如下(重点是xcb的部分) ./configure -confirm-license -opensource -debug-and-release -stati ...

  7. CentOS编译安装Qt(Qt可使用静态编译编译器)

    CentOS编译安装Qt(Qt可使用静态编译编译器) 文章目录 前言 下载Qt源码 编译安装--以4.7.4为例 安装QtCreator 设置编译器 附加--Windows Qt静态编译的方法(以5. ...

  8. Qt5.14.2MinGW-32静态编译及压缩过程配置教程

    目录 下载 下载Qt5.14.2 下载upxn 下载Python2 安装 检查配置 检查perl版本 检查python版本 静态编译 配置 编译 安装 新增静态编译环境 添加Qt Version 添加 ...

  9. 记录下 QT Linux 静态编译遇到的坑

    记录下 QT Linux 静态编译遇到的坑 记录下 QT Linux 静态编译遇到的坑 - 貘吃馍的日志 - 网易博客 http://qbaok.blog.163.com/blog/static/10 ...

最新文章

  1. 第39-43课 thinkphp5完成商品会员价格功能(后置勾子afterInsert)
  2. 【独家】IT自由职业者是怎么样的感受和体验
  3. Codeforces Round #188 (Div. 1) B. Ants 暴力
  4. 是时候对XSLT说“Goodbye”了吗?
  5. Channel的几种状态
  6. linux-安装jdk
  7. unity 安卓 后台运行_iOS14多任务界面放出,类似iPad,实现安卓锁定后台的功能?...
  8. 【OS学习笔记】二十四 保护模式七:调用门与依从的代码段----特权级保护
  9. Java返回int型的空值_使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法...
  10. python列表的小东西_小谈python里 列表 的几种常用用法
  11. 随想录(fpga处理图像的优缺点)
  12. Entering emergency mode . Exit the shell to continue . Type journa lctl to view system logs .
  13. 知道创宇云防御平台通过2021上半年可信云安全运营中心能力评估
  14. 基于UEBA的用户上网异常行为分析
  15. Linux--问题1--从用户态进入内核态
  16. 阿里云大数据平台DataWorks(原DataX)
  17. 人生路上前进的方向----有几条线贯穿自己的人生
  18. 如何理解对数似然损失函数
  19. kohana php版本,kohana框架的入门学习 2.0版本的
  20. Clickhouse副本与分片

热门文章

  1. 不熬夜,不修仙,B站打怪升级脚本一键搞定!
  2. python拦截数据包_httphttps,python抓包知多少
  3. Linux 重启 PHP-FPM 命令
  4. PerfDog:app性能测试工具 Android+iOS
  5. Java教程之mysql分库分表方案
  6. linux cut -b用法,Linux cut 命令详解
  7. Java中Iterator用法
  8. C++迭代器(iterator)用法
  9. remote: username : Incorrect username or password (access token) fatal: Authentication failed for
  10. 如何在Vim中移动到行尾?