最近学习QT,用QT写了些上位机,写完想尝试着把自己写的工程程序给打包发布出来,让软件在其他电脑也能运行。发现生成的Debug版本可以运行,但是release版本在自己的电脑上都无法运行,提示“无法定位程序输入点....”,网上找了一些方法,如:添加环境变量、复制.dll文件等,但还是没有很好的解决。
最终还是直接用QT自带的windeployqt打包生成需要的文件,生成的包可以在多数相同系统PC上运行,打包方法已经有人写的挺好的了,不再赘述,打包制作方法参照:https://blog.csdn.net/windsnow1/article/details/78004265
不过在实际操作时可能会出现“windeployqt不是内部或外部命令...”问题,此时需要自己手动下载windeployq.exe文件,然后复制到QT的mingwXX_XXbin 目录下(我这里是E:QT5.1.0mingw48_32bin),同时把这个目录添加到系统环境变量PATH里,或者重装QT安装这个组件也可以。
我在https://download.csdn.net/download/weixin_43207311/18576111里提供了windeployqt.exe和Engima Virtual Box两个软件。
也可以在:
https://www.pconlife.com/viewfileinfo/windeployqt-exe/
https://enigmaprotector.com/en/downloads.html
下载自己想要的其他版本。
ubuntuqt程序打包发布运行出错
在命令行下使用ldd 命令获得程序的共正蔽禅享依赖库;2、将相关的共享依赖库复制到指定的发布目录下。为检查是否缺少库依赖,在终端中将qt程序设置为调试模式 ,方法如下:
编辑 当前用户的 .bashrc 配置并差文举尘档,在文件的最后添加:QT_DEBUG_PLUGINS=1
完毕后采用 source .bashrc 命令使配置文件立即生效
Qt打包生成exe方法
方法一:解决跨设备无库文件,exe无法正常运行的问题。1、Qt程序采用release方式编译发布;拷贝".exe"目录整个文件夹。
2、以管理员方式大携 运行QT命名行 (电脑桌面->开始->搜QT->进编译器) "Qt 5.9.9 (MSVC 2017 64-bit)",
3、 cd /滚羡伏d ( )".exe"跟目录文件路径 例如:cd /d C:Users86131Desktoprelease ,定位至exe文件目录。
3、 windeployqt ( )”.exe“的程序名称 例如:windeployqt rtpPlayer.exe ,自动将应用所需的库添加至.exe文件中。
拷贝此文件夹全部内容至其他设备,exe文件可直接正常运行。
方法二:打包成一个exe文件。
1、按方法一先添加好全部库文件。
2、运行"Enigma Virtual Box"软件,
①选择exe文件路径;
②设置打包后的exe文件的保存路径;
③将所有文件全选后拖拽至列表"add Folder Recursive"整个文件夹(可直接打开含库文件的release文件夹,全选文件夹内所有文件,拖拽至"Enigma Virtual Box"软件文件列表)
④建议压缩后执行。执行完成后会在相应路径生成打包好的exe文件,如过派樱库文件齐全、压缩步骤正确,即可在不同设备上正常运行打包后的exe程序。