qt学习2——qt在window下的发布

很多时候,我们在用qt creator编译运行我们所写的程序时,程序能正常启动,但是当我们直接点击debug下面的exe文件时,程序却启动失败,会提示缺少某些dll文件,这是为什么呢?

是这样的,我们所写的qt程序,需要用到很多qt库,但这些库是以动态链接库的形式,加载在程序中的,如果用qt creator,则它会帮助我们将那些所需要的动态链接库链接到程序中去,但如果是我们手动去点击exe文件,则那些dll文件无法加载。如何解决呢?

解决方法有2:

1. 以环境变量的形式,将所需要的dll文件放到某个文件夹下,然后在环境变量中,增加PATH变量(如果原先没有PATH变量的话),将该文件夹的地址放到PATH环境变量中去,这样,程序启动时,能链接到那些dll文件。

2. 直接将那些所需要的dll文件放到自己所写的那个qt程序目录下去。如何知道所需哪些dll文件呢?这个可以通过点击自己的那个exe文件,它自然会提示你缺失那个dll,然后依次添加相应的dll文件即可。

我用vs2010编译器以及对应的qt版本时,就这样可以了。

当我用mingw47_32和Qt5.0.2时,当增加完所提示的所有dll文件后,会出现如下错误提示:

This application has requested the Runtime to terminate it in an unusual way.

出现这个的原因其实还是未添加好所有的dll。需要在目录中建立platforms目录,并在platforms放入qminimal.dll和qwindows.dll两个文件(这两个文件都在plugins下的platforms文件夹下,其它的几个dll都在bin下。)程序才能运行。因为程序在windows平台下运行需要以上两个dll文件。

如果以上还不行的话,还需要在程序目录下添加 libEGL.dll 文件

感受:用qt写的程序,如果包含了dll,那是很大的,通常都超过10M了,真奢侈。

时间: 2024-10-14 18:05:01

qt学习2——qt在window下的发布的相关文章

Qt学习记录--Qt::CaseSensitive

Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSensitive区分大小写 Qt::CaseInSensitive不区分大小写 例如:void findPrevious(const QString &str,Qt::CaseSensitivity cs); 这个函数想要带一个const QString &str字符串参数,而后面跟的Qt::C

Ruby学习的一天-window下环境搭建及Ruby基础

学习Ruby参考教程: http://www.w3cschool.cc/ruby/ruby-installation-windows.html windowx下的ruby学习一.安装ruby,下载最新window稳定版ruby,这里是1.9.3版本点击next安装直到完成,为了方便,在安装界面下方会有个复选框提示是否需要安装watir,DevKit和环境配置的选项,这里勾选了,就不用那么麻烦配置了.安装完成后直接进入命令行,输入ruby -v .如果不出问题,应该会显示当前ruby版本信息. 二

QT学习之QT判断界面当前点击的按钮和当前鼠标坐标

1.QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* .可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject). QObject::objectName( ) 返回对象的名称(QString) 1 QPushButton*btn = qobject_cast<QPushButton*>(sender());//获取发射信号的对象 2 if("按钮对象名"==btn->object

saltstack window下的发布回滚

示例: 1.程序集主目录:service下 2.sls 目录: service_sls 下 ServerName 服务 sls 示例: 1.发布 servername.sls {% set time = salt['cmd.run']('D:\script\getinfo.py gettime') %} {% set service_name = 'ServerName' %} Services_dir: file.directory: - name: D:\Services - unless:

Qt学习之路

  Qt学习之路_14(简易音乐播放器) Qt学习之路_13(简易俄罗斯方块) Qt学习之路_12(简易数据管理系统) Qt学习之路_11(简易多文档编辑器) Qt学习之路_10(Qt中statusBar,MessageBox和Timer的简单处理) Qt学习之路_9(Qt中Item Widget初步探索) Qt学习之路_8(Qt中与文件目录相关操作) Qt学习之路_7(线性布局和网格布局初步探索) Qt学习之路_6(Qt局域网聊天软件) Qt学习之路_5(Qt TCP的初步使用) Qt学习之路

Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载,MySQL官网下载地址:http://www.mysql.com/downloads/installer/ 2.安装时,会提示安装.netFramework4环境,这里提供一个下载链接:http://dldx.csdn.net/fd.PHP?i=537939463366842&s=17682a852

QT学习第1天

QT学习第一天  坚持住!! 一 Qt概述 1.Qt发展历史 (1)1991年诞生(Haavard Nord/Eirik Chambe-Eng), (2)1994年创立Troll Tech(奇趣科技) (3)2005年QT4.0 (4)2008年被Nokia收购 (5)2009年源代码开源 (6)2012年Nokia将全部QT业务和知识产权卖给Digia公司 (7)2013年QT5.0 QT5.1 QT5.2 (8)2014年Digia公司成立 The Qt Company子公司 2.Qt5.4

Qt学习(7)

Qt学习(7)——Hello Designer 上一节的 Hello Widget 例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用 C++ 代码编写的.窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了. 用 C++ 代码编写图形界面的问题就是不直观,因此 Qt 项目开发了专门的可视化图形界面编辑器—— Qt Designer, 即 Qt 设计师.通过设计师就可以很方便地创建图形界面文件 *.ui ,然后将 ui 文件应用到源代码里面,做到所见即所得(

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实