windows发布qt程序依赖库qtwindows qtcore qtwidgets等的终极解决方案

25 篇文章 2 订阅

先给出答案:

利用windeployqt.exe解决,windeployqt.exe的位置在qt的vs插件的bin目录下。

原因:

采用qt开发windows桌面程序,由于qt已经安装在了系统路径下,所以在开发的机器上是不会出现找不到依赖库问题的。但是,当我们打包之后,放到客户机上,客户是肯定不会为了用你的程序,去安装一个完整的qt,而且版本还需要和你开发时候使用的一模一样。所以,就需要我们在打包时,把依赖的所有qt库放在.exe可执行程序同级目录下。

此时也会出现一个问题,不知道自己的程序到底依赖了哪些qt库。如果是开发经验很足的朋友,可以快速根据自己代码中使用到的qt功能,找到依赖的dll。比如说qtcore qtwidgets qtopengl qwindows等。但是,一些经验不足的同学,可能就需要采用最笨的方法,找一台没有安装过qt的空白机器,然后跑自己的应用程序,每跑一次,出错一次,记录一下缺少哪些库,然后一个一个拷贝进来。这样也可以完成,但是太麻烦了。

qt开发者已经为我们想到了这个问题的终极解决方案。

采用windeployqt.exe解决。

如下图所示:

 

windeployqt.exe的位置在qt的vs插件的bin目录下。

我的场景是这样的。

开发出的应用程序在C:\Users\lenovo\Downloads\openvr-1.0.11\samples\bin\win64路径下,名字为helloworldoverlay.exe,

通过终端切换当前目录为windeployqt.exe所在目录,然后运行上面的命令,即可将helloworldoverlay.exe所依赖的所有qt库拷贝至.exe同级目录中。

解决问题。

备注:由于windows的终端命令不好用,可以采用Git bash打开终端,此时采用绝对路径寻找软件时,需要采用双反斜线"\\"作为路径分隔符。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值