分享

QT在windows上发布之所需运行库(一)

 睡神在在 2015-11-23

笔者安装的是QT SDK。(发行版本这是前提,很重要,不是源码编译版本)

QT不像JAVA那样编译出来就马上可以run  everywhere了,运行时还得有必要的运行库支持。接下来就是准备工作:

首先,你得有个编译出来可以运行的程序(嗯,这里代码是什么任君选择,本文篇幅有限就不多说了。)

第二,用release的方式构建工程,而不是debug(相信很多情况下默认是该选项)。对,就是在qt creator  左下角大大的运行按钮(绿色)上面那个选项可以配置。

第三,编译构建工程。去到工程目录下的release目录下可以看到执行程序,我们这时打开一般是可以正常运行的(您的代码没有明显的BUG的情况下)。但是这是一种“假象”(相对我们把这程序扔到别的地方来说。),你可以把这程序放到工程目录以外的目录里单独运行一下,会提示如下图的,找不到xx.dll。

 

第四,因为QT其实只是类库,我们用QT来写代码,其实也是要依赖QT的机制。故我们写出来的程序,得通过QT来与系统沟通好才行,显现沟通的代码不可能是我们来写,so,我们得有运行必要的库支持。下图即使必要的动态链接库(libgcc_s_dw2-1.dll  mingwm10.dll  QtCore4.dll  QtGui4.dll这是最基本的,如果有用到qt里别的插件模块得另外添加,后面会讲到):

 

 

而这四个库如果在qt安装目录下查找你可能会晕倒,因为出现一大堆同名的,用哪个好呢?我们需要用到的就是   C:\QtSDK\Desktop\Qt\4.7.4\mingw\lib  (这里我的SDK是安装在C盘,请根据自己情况找)。我们把以上四个库放在release版本执行程序同一个目录,这时就可以顺利运行了。

还有一种普遍的情况得说以下,就是我们用到第三方库或者QT自带的插件模块。例如我的程序要用到了phonon了,一般要进行如下操作:

1 工程文件xxx.pro里添加红色部分  QT  += core gui phonon

2 找到phonon4.dll  还是在刚才所说的lib目录下找,复制到执行文件同一目录。  

2 找到phonon插件所在目录

    C:\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\phonon_backend(这是笔者的)把此目录复制到release执行文件所在目录下的plugins(这个目录也需要自己创建)下。

3 在源代码里的main.cpp修改如红色字体

        QApplication a(argc, argv);

        a.addLibraryPath("./plugins");

大功告成,编译去吧。

最后就总结一下,你要发布一个QT程序最终需要的文件如下:

1 一个独立的目录,内有经过release构建的执行程序(代码得根据以上所说做出修改)

2 最基本的4个库文件 libgcc_s_dw2-1.dll  mingwm10.dll  QtCore4.dll  QtGui4.dll放在与执行文件同一目录下。

3 如果程序代码用到了插件或者第三方库,同样地放在同一目录下。而插件的支持要在代码内添加子目录路径。(思考一下,为什么不都放在同一目录?)当然为了方便扩展和便于管理。

 

 关于如何打包程序,制作成安装包,请看下面文章:

          QTwindows上发布之NSIS的使用方法(二)http://blog./uid-24641004-id-3412254.html

 

       这是noiplee的技术博客,我写博客的目的是想通过快速分享来达到掌握知识的目的,同时希望和各位网友交流共同进步。如果您看了我的文章有任何的建议或者观点,非常欢迎留言和评论,有任何问题我们都可以一起探讨,我会及时回复的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多