• 13197阅读
  • 15回复

[提问]Qt5编写的程序怎样在别人电脑上运行? [复制链接]

上一主题 下一主题
离线nobodycp
 

只看楼主 倒序阅读 楼主  发表于: 2015-05-07
已按提示将所有.dll文件和.exe文件放在同一个文件夹,但还是会报错


求大神指教!
离线bran_lee

只看该作者 1楼 发表于: 2015-05-08
mscvr???.dll 之类的复制了吗
当你只有锤子时,你看什么都像是钉子!
离线nobodycp

只看该作者 2楼 发表于: 2015-05-08
回 bran_lee 的帖子
bran_lee:mscvr???.dll 之类的复制了吗 (2015-05-08 08:10) 

我的电脑上都搜不到这些文件呢?
离线uidab

只看该作者 3楼 发表于: 2015-05-08
imageformats 和 platforms目录呢?
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


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

只看该作者 4楼 发表于: 2015-05-08
回 nobodycp 的帖子
nobodycp:我的电脑上都搜不到这些文件呢? (2015-05-08 09:12)

在vs的安装目录下有,根据版本不同后三位数字有所不同,比如2010的是msvcr100.dll,除了基本的几个dll,也需要3楼说的platforms下的,根据需要加上plugins的其他dll

当你只有锤子时,你看什么都像是钉子!
离线nobodycp

只看该作者 5楼 发表于: 2015-05-08
我取消掉设置好的环境变量后,exe文件就不能运行了,提示缺少XXX.dll文件,按照提示将dll文件跟exe文件放一起就能运行了。但将exe文件跟dll文件一起放到别人的电脑上依旧报错。
离线roywillow

只看该作者 6楼 发表于: 2015-05-08
回 nobodycp 的帖子
nobodycp:我取消掉设置好的环境变量后,exe文件就不能运行了,提示缺少XXX.dll文件,按照提示将dll文件跟exe文件放一起就能运行了。但将exe文件跟dll文件一起放到别人的电脑上依旧报错。[图片]
 (2015-05-08 16:37) 

你这是压缩好之后直接在压缩包里打开的呀……
这不是找抽么……winrar凭什么要给你把压缩包里所有的文件都解压缩出来然后让你执行?要是一个500M的压缩包直接双击打开里面某个文件,难道rar还会把这500M全部解压缩开再执行?
另外Qt插件是动态加载的,所以即使缺少也不会明确告诉出来是少了哪个,因为是“插件”,少了也“无所谓”
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线rootuser

只看该作者 7楼 发表于: 2015-05-11
用Depends.exe来检测应用需要的dll,放在同一目录下,或者网上找个文章"如何发布qt程序".
离线stlcours

只看该作者 8楼 发表于: 2015-05-11
回 roywillow 的帖子
roywillow:你这是压缩好之后直接在压缩包里打开的呀……
这不是找抽么……winrar凭什么要给你把压缩包里所有的文件都解压缩出来然后让你执行?要是一个500M的压缩包直接双击打开里面某个文件,难道rar还会把这500M全部解压缩开再执行?
另外Qt插件是动态加载的,所以即使缺少也不会明确告诉 .. (2015-05-08 19:45) 

精灵王果然厉害,观察够仔细,可以留个方式交流吗?谢谢!
离线caicaiking

只看该作者 9楼 发表于: 2015-05-12
最好是把插件也要 放进去,应为很多时候用到一些莫名的插件自己是不知道的。
离线nobodycp

只看该作者 10楼 发表于: 2015-05-12
回 roywillow 的帖子
roywillow:你这是压缩好之后直接在压缩包里打开的呀……
这不是找抽么……winrar凭什么要给你把压缩包里所有的文件都解压缩出来然后让你执行?要是一个500M的压缩包直接双击打开里面某个文件,难道rar还会把这500M全部解压缩开再执行?
另外Qt插件是动态加载的,所以即使缺少也不会明确告诉 .. (2015-05-08 19:45) 

好吧,截图是在网上查询的时候看到的,我自己报错的信息跟这截图上的下半部分是一样的,就直接用上了,请忽略上半部分。
离线nobodycp

只看该作者 11楼 发表于: 2015-05-12
回 rootuser 的帖子
rootuser:
用Depends.exe来检测应用需要的dll,放在同一目录下,或者网上找个文章"如何发布qt程序".

是这样用的么?
离线nobodycp

只看该作者 12楼 发表于: 2015-05-12
问题已解决,因为是动态编译,要用到的.dll文件都类似于Qt5Cored.dll,Qt5Guid.dll。
包括platforms里的qwindowsd.dll。注意不是qwindows.dll。但是一个Qt5Guid.dll就一百多M,整个文件就400多M了,
执行文件才1M多,这怎么接受的了。。。
离线dbzhang800

只看该作者 13楼 发表于: 2015-05-12
回 nobodycp 的帖子
nobodycp:问题已解决,因为是动态编译,要用到的.dll文件都类似于Qt5Cored.dll,Qt5Guid.dll。
包括platforms里的qwindowsd.dll。注意不是qwindows.dll。但是一个Qt5Guid.dll就一百多M,整个文件就400多M了,
执行文件才1M多,这怎么接受的了。。。 (2015-05-12 14:18) 

注意区分 Debug 和 Release
离线foruok

只看该作者 14楼 发表于: 2015-05-12
发布时最好使用windeployqt来解决依赖问题。
--------
我的微信公众号“程序视界”:漫谈程序人生,有趣,有能量;同时提供免费技术和职业咨询。微信扫一扫:

我的博客:http://blog.csdn.net/foruok
我的微信订阅号:程序视界
离线roywillow

只看该作者 15楼 发表于: 2015-05-12
回 nobodycp 的帖子
nobodycp:问题已解决,因为是动态编译,要用到的.dll文件都类似于Qt5Cored.dll,Qt5Guid.dll。
包括platforms里的qwindowsd.dll。注意不是qwindows.dll。但是一个Qt5Guid.dll就一百多M,整个文件就400多M了,
执行文件才1M多,这怎么接受的了。。。 (2015-05-12 14:18) 

你编译的时候选成了debug了吧……release就没这么大了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个