先给出答案:
利用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打开终端,此时采用绝对路径寻找软件时,需要采用双反斜线"\\"作为路径分隔符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)