Qt发布的时候会遇到的问题
2015-02-24 17:28
183 查看
1.编译方式的选择:动态链接库vs静态链接
一般来说,做小demo都比较嫌弃麻烦,所以都选择用动态链接库。对于Qt程序,如果要给别人用,就要把exe程序,加上Qt 的必要dll文件,以及你(您?礼貌一点?)需要用到的其他库的dll,例如opencv的那些东东。一般跟别人一样的操作,直接双击 XX.exe,提示缺少什么dll,就去Qt的安装目录下的bin文件夹里去找。
推荐一个小工具,百度可以找到,叫一键release。其实这个一键release做的一般般,但是对于做小demo而言,已经是很好的帮助。省却了一个个dll找起来的麻烦。比如我要做qt+opencv,光是dll就有十几二十个。但是用一键release其实也需要自己了解dll的原理,还有了解自己用到了哪些dll。
//********************************** 补充说明 (2015 3 18) *******************************************
后来我用VS+Qt来做开发,发布的时候发现 一键release 这个东西不好用了。。然后上网搜了一下,看到了dependancy walker
感觉这个walker比一键release做的好,具体怎么个好法用户自己去发掘。
顺便一提,用VS2013+Qt5开发,需要带的dll和单纯用Qt Creator开发用的dll稍有不同。主要原因,一个是VS默认用自带的编译器VC,而QtCreator默认使用g++作为编译器。故前者需要带上msvcp120.dll,msvcr120.dll;而后者则是带上libgcc_s_dw2-1.dll,libstdc++-6.dll,libwinpthread-1.dll。然后两者都需要带上Qt所必须的dll,以及其他需要的dll(例如你使用了opencv,就带上opencv的dll)。
又顺便一提。在dependency walker里面,如果是使用VS2013+Qt开发的程序,除了上述的vs的dll和qt的dll,还有一个kernel32.dll和shell32.dll。这两个dll实际上就是windows最核心的部分,包括了一些基础API。一般每个windows都会自带这个,放在C盘(系统盘)的windows/system32下面,故不需要拷贝到发布的程序那里。当然,一个win7 win8下正常的程序,到了XP下就跪了,原因就是这kernel以及shell不兼容了。
2. This application failed to start because it could not find or load the Qt platform plugin "windows"
(以下这段复制别人的,讲得太好不忍心不复制,谢谢博主,链接是http://www.cnblogs.com/mmix2009/p/3536825.html)复制所需的dll后,提示了这个错误。这个错误的解决方案是:
1.可能缺少复制 libEGL.dll
2.需要把D:\Qt\Qt5.2.0\5.2.0\msvc2010\plugins\platforms\qwindows.dll,带红色的复制到你的exe执行文件目录。就是platforms文件夹,里面一个qwindows.dll
一般移植到别人的电脑使用,都需platform的变换,故而把解决方案2号做了就可以了。上面提到的一键release,不会帮你(您。。)做这个platform文件夹的复制,所以要自力更生艰苦奋斗。platform文件夹里面的dll是Qt为了方便多平台移植所做的贡献,实际上是插件的一种,所以是在Qt的bin目录下找到plugins,再打开才能找到platform
相关文章推荐
- QT发布中遇到的问题 - wufan的专栏 - 博客频道 - CSDN.NET
- vs2010 和qt编程的时候遇到些补全的问题
- 今天在发布IIS站点的时候遇到了一些问题
- Qt发布可能遇到的问题
- Qt发布可能遇到的问题
- 在使用SSH框架整合新闻发布系统时候遇到的问题的解决
- Qt 程序发布遇到的问题
- Qt在Windows版发布程序时遇到的问题
- 关于Cocos2d-x发布游戏的时候遇到的问题和解决
- QT发布时遇到0x00000007b问题
- Qt发布可能遇到的问题
- 在windows下发布QT程序遇到问题及解决
- QT发布中遇到的问题
- Qt应用程序发布遇到的问题及其解决
- qt4环境下跑qt3程序的遇到的小问题
- 调实JSPDEV的时候遇到了问题Cannot inherit from final class
- 日期格式化的时候遇到的奇怪的问题
- 遇到 asp.net 2.0 web site 站点发布问题(一)
- eclipes发布到tomcat时遇到的一点小问题
- Windows平台安装QT 3.3.4过程中遇到的两个问题