Qt静态编译发布和动态编译发布

静态编译发布

你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译。

下面的教程就是Qt静态编译环境配置

Qt5.6静态编译包下载地址

1.下载Qt5.6静态编译包,解压放在任意目录。

这里我放在了Qt文件下的Tools目录

2.打开Qt Creator -> 工具 -> 选项..

3.点击Qt Versions添加静态编译包bin目录下的qmake文件。

4.点击 构建和运行 -> 构建套件(kit) -> 添加

 5.注意下面四个地方配置,点击确定就ok了!

6.新建一个项目,选择静态编译release,点击左下角那个小锤锤你的程序就编译完成了。

然后找到目录下生成的exe文件,你就可以拿着这个文件随意运行了(win7及以上版本)。

动态编译发布

当制作大型项目时还是得用动态编译,一是可以缩小了执行文件本身的体积,另一方面是加快了编译速度。两方面都节约了系统资源。

1.创建项目选择MinGW构建套件release。再点击左下角的小锤锤

编译完成后,你就可以在项目编译目录下找到一个很小得exe文件。

运行时电脑会提示你各种库找不到这时就需要你手动将各种库移到exe目录下,但每次这样移动也不是办法,所以qt提供了一个工具自动复制相应得库到exe目录下。打开开始菜单,找到mingw点击进入。

2.在控制台输入windeployqt 刚刚动态编译文件生成路径,回车。

exe文件下就出现了程序需要用到得所有dll。

点击文件即可运行,你就可以拿着这个目录文件随意运行了(win7及以上版本)。

原文地址:https://www.cnblogs.com/StringSir/p/8445474.html

时间: 2024-08-08 17:49:17

Qt静态编译发布和动态编译发布的相关文章

静态编译、动态编译、静态链接库和动态链接库理解

1.静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行时不需要依赖于动态链接库. 2.动态编译: 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令.所以其优点一 方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源.缺点一是哪怕是很简单的程序,只用到了链接 库中的一两条命令,也需要附带一个相对庞大的链接库:二是如果其他计算机上没有安装对应的运行库,

Java动态编译

Java动态编译 一.动态编译简介 new创建对象是静态加载类,在编译时刻就需要加载所有可能使用到的类. 一百个类,有一个类错了,都无法编译. 通过动态加载类可以解决该问题 二.代码实例 2.1 OfficeBetter.java main接口 里面通过对Class类的动态编译 然后调用实例,完成动态编译 1 public class OfficeBetter { 2 3 public static void main(String[] args) throws InstantiationExc

让C#语言充当自身脚本!——.NET中的动态编译

原文:让C#语言充当自身脚本!--.NET中的动态编译 代码的动态编译并执行是.NET平台提供给我们的很强大的一个工具,用以灵活扩展(当然是面对内部开发人员)复杂而无法估算的逻辑,并通过一些额外的代码来扩展我们已有 的应用程序.这在很大程度上给我们提供了另外一种扩展的方式(当然这并不能算是严格意义上的扩展,但至少为我们提供了一种思路). 动态代码执行可以应用在诸如模板生成,外加逻辑扩展等一些场合.一个简单的例子,为了网站那的响应速度,HTML静态页面往往是我们最好的选择,但基于数据驱动的网站往往

JAVA之动态编译

通过Java动态生成class文件 今天说下JAVA中的动态编译,这个功能根据我现在的了解好像没有见到过用的,我Jio的吧,现在的一些在线代码编缉器可以用到了,这个具体我也不是很清楚.感兴趣的大家可以自已了解下. 说到动态编缉大家可能会想到,动态编缉肯定不是像我们平时运行程序似的在本地的平台就开始编译了. 动态编译其实是在程序的运行过程中对Java文件的编译或者是运行.class的文件.比如说我今天想装一波,我写个java的程序,又写了个另一个java的程序在小伙伴面秀,我只运行一个java程序

gcc 动态编译 动态库路径

gcc 动态编译(共享库) 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令优点:体积小,编译快缺点:依赖性高 代码如下: [[email protected] shared]# cat add.cint add (int x, int y) {return x + y;} Parsed in 0.007 seconds at 12.13 KB/sadd.c 求和函数 代码如下: [[email protected] shared]# cat print.

Qt 5.6.0 动态编译(VS2013 x86 target xp openssl icu webkit)

经历了多次延期后,在3月16号,Qt发布了5.6.0版本(全面支持高DPI无疑是一个亮点),从5.6.0版本开始,Qt直接移除了webkit模块,让webengine作为其替代选择,不过webengine无法为WinXP编译(参考:https://bugreports.qt.io/browse/QTBUG-49900).如果你还有用户仍在WinXP上使用webkit,Qt官方给的解决方案是你可以自己编译webkit.当然编译一向都不是一个很容易的东西,笔者在编译过程中也出现了很多问题,不过最后还

VC , Linux 静态编译与动态编译 (MD, MT)

首先从Linux下开始讲起,因为Linux编程对程序的理解要清楚一些,相比之下VC就比较容易糊涂. 当动态编译时,你发布的程序体积较小,在运行的时候需要同时提供你用到的dll / so文件. 当静态编译时,你发布的程序体积较大,包含所有符号,运行时不需要其他的 dll / so的支持,可以独立运行. 静态编译的目的是使发布的程序可以独立运行,不依赖于其他*.so,在技术上是把所有依赖的符号打包链接进了目标程序.这时候你会发现编译出来的程序的体积要大一些(Link的速度也会慢一些). 编译过程分为

QT静态编译

Qt静态编译(链接)和动态编译区别 Qt的静态编译译(其实应该叫链接,不是编译),将各模块编译成静态库,这样在编译自己写的Qt程序时,会将这些静态库编译(链接)到你的EXE文件中去的.Qt的动态编译,将各模块编译成动态库(windows是DLL),这样在编译自己写的Qt程序时,会将这些动态库链接到你的EXE文件中去的,执行时需要Qt模块的动态库.如果是静态编译, 在头文件里包含如“QWidget”而不是<QWidget>这样编译之后就不需要上面的动态库了.如果是动态编译,产生的exe必须要依赖

QT 静态编译后中文可能会出现乱码

QT 静态编译后中文可能会出现乱码.这是因为处理文字编码的 libqcncodecs 库是以 plugin 形式存放在 QT 静态编译目录/plugs/codecs/libqcncodecs.a 文件中.文字乱码,需要加入入字体插件在 main.cpp 文件内:#include <QtPlugin>Q_IMPORT_PLUGIN(qcncodecs) 然后在工程 pro文件中加入库:QTPLUGIN += qjpeg qcncodecs或者LIBS += QT 静态编译目录/plugs/cod