寻找Qt大牛解决问题

勇往直前996 2018-08-02 09:26:13
问一下各位大神,我的Qt 开发软件release版本的,运行起来必须用自己环境的QtCore4.dll,放到有Qt环境的电脑上运行,依然需要更换为该电脑上的QtCore4.dll才能正常运行,放到没有安装Qt的电脑不论什么QtCore4.dll都无法运行,敢问各位大神有没有遇到过类似的问题,求解答?谢谢~~
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
勇往直前996 2018-08-07
  • 打赏
  • 举报
回复
统一回复,谢谢大家的回复,我的问题解决了 ,删减代码,找到我的一段代码有问题,不是错误,就是加载动画放到mainwidow构造函数最后就可以了,具体原因不明。
丁劲犇 2018-08-04
  • 打赏
  • 举报
回复
Qt是C++库,编译器强相关,主版本号强相关,次版本号强相关。一旦版本不一致,很可能出问题。
Qt的发布有两种方法。一是静态编译,优点是最终发布文件很少,只有一个可执行档。缺点是,静态编译导致qt的plugin模式全部报销,类似数据库等需要插件支持的功能,就需要静态库本身在构建的时候打开了选项。否则,mysql之类的就挂接不上去。二是打包发布。把qt相关依赖伴随可执行文件一齐发布。这好处是可以用到所有插件,缺点是一个可执行跟了几十个动态链接库。最暴力、简单的做法:
1、新建文件夹,把你的可执行复制进去
2、在Qt4的bin里的所有动态链接库,全部复制一份进文件夹
3、Qt4的plugins里的所有文件夹,全部复制一份进文件夹
4、把Qt4的安装路径暂时更名,比如Qt4.bak
5、看看程序能否运行。如果不行,可能还缺与Qt无关的一些库,如fftw、mysql ssl之类的。注意,一些数据库插件运行,是需要数据库的客户端库的。这些客户端库,又需要openssl。
6、如果顺利运行,则保持运行状态,而后选中所有的库,删除。你会发现很多删不掉。删不掉的就是需要的。
7、最终的文件夹就是发布包。


最后别忘了恢复Qt安装文件夹的名字。

用这种方法,屡试不爽。不管是在windows还是Linux都可以的。
Clampard 2018-08-03
  • 打赏
  • 举报
回复
https://blog.csdn.net/u012613604/article/details/53572995 或者将qt库编译成静态的lib库
sghcpt 2018-08-03
  • 打赏
  • 举报
回复
一般软件编译成exe文件后,就把它依赖的dll文件跟着exe执行文件一起打包发布,在执行的时候,exe都先在同目录下查找依赖的dll吧,怎么会出现楼主上面说的情况,会查找每个电脑上的QtCore4.dll的才能运行?会不会楼主你的程序依赖的dll没有拷贝全,缺少某些dll导致错误呢?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧