• 14412阅读
  • 20回复

[提问]程序发布时出错:Runtime Error!(又出现了) [复制链接]

上一主题 下一主题
离线jouyouyun
 
只看楼主 倒序阅读 楼主  发表于: 2013-03-08
写的程序,在开发环境中运行正常,发布后在其他电脑上运行有时候会出现如下错误
  1. Runtime Error!
  2. This application has requested the runtime to terminate it in an unusual way. Please contact the application's support team for more information.

开发环境是:QT5 + mingwin47
在网上看到有人说是少了 plugins ,我把 QT 下的 plugins 目录整个拷到我的程序路径下,并在 main.cpp 中设置了路径,结果还是不行,求解


在线uidab

只看该作者 1楼 发表于: 2013-03-08
回 楼主(jouyouyun) 的帖子
头像太晃眼了。

这个你用工具看看,是不是缺少依赖库!!
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线roywillow

只看该作者 2楼 发表于: 2013-03-08
把插件里的platforms文件夹拷贝到程序目录,不需额外设置代码中的目录
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jouyouyun
只看该作者 3楼 发表于: 2013-03-08
没有,我用 depends 看了
离线roywillow

只看该作者 4楼 发表于: 2013-03-08
回 3楼(jouyouyun) 的帖子
插件的依赖你从depends里看不到的……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 5楼 发表于: 2013-03-08
用procexp是上策,可以一个不漏的找到全部插件。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线jouyouyun
只看该作者 6楼 发表于: 2013-03-08
引用第2楼roywillow于2013-03-08 11:08发表的  :
把插件里的platforms文件夹拷贝到程序目录,不需额外设置代码中的目录

复制了,没用,还是照样报错。
离线jouyouyun
只看该作者 7楼 发表于: 2013-03-08
Re:回 3楼(jouyouyun) 的帖子
引用第4楼roywillow于2013-03-08 13:32发表的 回 3楼(jouyouyun) 的帖子 :
插件的依赖你从depends里看不到的……

我把 QT 里的插件都复制到程序目录了,没有用。另外我看了程序生成时的链接命令:
  1. g++ -Wl,-subsystem,windows -mthreads -o debug\MySerial.exe debug/main.o debug/mainwindow.o debug/qextserialbase.o debug/readport.o debug/database.o debug/win_qextserialport.o debug/moc_mainwindow.o debug/moc_readport.o  -lmingw32 -lqtmaind -LC:\Qt\Qt5.0.1\5.0.1\mingw47_32\lib -lQt5Widgetsd -lQt5Sqld -lQt5Guid -lQt5Cored -llibEGLd -llibGLESv2d -lgdi32 -luser32
除了 mingw32 qtmaind 其他的库都复制到程序目录了, mingw32 和 qtmaind 没在 QT 的 bin 目录中发现。
离线jouyouyun
只看该作者 8楼 发表于: 2013-03-08
引用第5楼jdwx于2013-03-08 13:36发表的  :
用procexp是上策,可以一个不漏的找到全部插件。

如何查找插件
离线roywillow

只看该作者 9楼 发表于: 2013-03-08
回 7楼(jouyouyun) 的帖子
你用的是debug构建,先确认一下有没有拷贝成release库
然后你好像用的是官方的mingw版?你没有拷贝成creator用的库吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jouyouyun
只看该作者 10楼 发表于: 2013-03-08
Re:回 7楼(jouyouyun) 的帖子
引用第9楼roywillow于2013-03-08 21:28发表的 回 7楼(jouyouyun) 的帖子 :
你用的是debug构建,先确认一下有没有拷贝成release库
然后你好像用的是官方的mingw版?你没有拷贝成creator用的库吧

我把 debug构建的库和 release 构建的库都放进去了,结果一样,DLL 文件是在 C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin 目录下拷的,不是 creator 的。
离线jouyouyun
只看该作者 11楼 发表于: 2013-03-08
知道是什么问题了,程序运行时不会自动去到 plugins 目录中去查找插件使用的库,需要把使用的插件库拷贝到程序所在的目录。在查找程序运行所调用的库时, DLLShow 比较好,它能显示所有的库(包括插件),这是个人感觉。
离线roywillow

只看该作者 12楼 发表于: 2013-03-09
回 11楼(jouyouyun) 的帖子
……
所以我说把 platforms 文件夹拷贝到程序目录中啊……因为我不太清楚你说的plugins目录整个拷贝是怎么个方式……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jouyouyun
只看该作者 13楼 发表于: 2013-03-09
Re:回 11楼(jouyouyun) 的帖子
引用第12楼roywillow于2013-03-09 00:26发表的 回 11楼(jouyouyun) 的帖子 :
……
所以我说把 platforms 文件夹拷贝到程序目录中啊……因为我不太清楚你说的plugins目录整个拷贝是怎么个方式……

我写了个输出 Hello World 的程序用这种方法可行,但用上 Mysql 后错误又出现了。链接库和插件都复制过去了,在自己的电脑上都没问题,但是在别人的电脑上用 Mysql 的程序出错了。我的 Mysql 程序使用了一个开源的串口库,我是用的源文件一起编译的。




离线jouyouyun
只看该作者 14楼 发表于: 2013-03-09
这是程序源码:见此 。哪位能帮忙测试下,找出问题所在?
离线XChinux

只看该作者 15楼 发表于: 2013-03-09
干脆点,直接将plugins目录下所有东西全复制到exe所在目录下去。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jouyouyun
只看该作者 16楼 发表于: 2013-03-09
引用第15楼XChinux于2013-03-09 15:50发表的  :
干脆点,直接将plugins目录下所有东西全复制到exe所在目录下去。

试过了,还是出错。
离线justwake

只看该作者 17楼 发表于: 2013-03-10
回 16楼(jouyouyun) 的帖子
我以前写的一个程序和你出的错误提示是一样的 不过我的错误原因是
:MVC中 先设置view后设置model  在debug下就会出你这个错误

具体见 http://www.qtcn.org/bbs/read-htm-tid-52893.html

看能不能帮上你忙
离线jouyouyun
只看该作者 18楼 发表于: 2013-03-20
找到方法了,谢谢!!!
离线lssxfy123

只看该作者 19楼 发表于: 2014-08-05
楼主,你好,你最后是用什么方法解决的啊?能把过程分享下吗,谢谢。
离线9715866331

只看该作者 20楼 发表于: 2017-12-18
怎么解决的麻烦说一下啊!!!
快速回复
限100 字节
 
上一个 下一个