QT 项目打包提示缺少动态库

QT项目打包遇到提示无法定位输入点_xxxxxx 于动态库连接 xxxx\libwinpthread-1.dll上。

先说下个人理解逻辑,QT打包大致跟其他博主说的一样,利用QT提供的windeployqt(indeploy 部署意思)软件进行打包,他会将需要的动态库以及依赖文件找出放入一个文件夹中,我安装的QT软件提供了多个支撑系统的windeployqt软件,如下图,有支撑安卓的有支撑msvc的还有mingw的,这就存在一个问题,如果你构建项目时用的mingw的而打包时用的是msvc的打包,就会出现找不到定位点的问题。

还有就是可能流氓软件360会导致编译过程出现问题,选择关闭360安全卫士

 

QT 项目打包提示缺少动态库

下面说下我处理的过程:

1. 将打包软件windeployqt的路径放入系统环境变量:系统属性中--》环境变量---》Path---》将windeployqt软件的位置加到编译环境变量中。(将用到的置顶)QT 项目打包提示缺少动态库

QT 项目打包提示缺少动态库

2. 构建项目,在构建项目前先选择部署环境,选择release版,然后在构建中--构建部署

QT 项目打包提示缺少动态库

3. 将生成的可执行文件放入一个新建文件夹中,如图所示,将1中release/bin中的xxx.exe文件找出放入新建的2号文件夹中

QT 项目打包提示缺少动态库

4. 找到相应的编译软件编译拷贝的.exe文件 (注意:将流氓软件360关闭)

 

QT 项目打包提示缺少动态库

QT 项目打包提示缺少动态库

5. 打包好后用第三方压缩软件 Enigma Virtual box再进行一次压缩,压缩完成后会生成一个独立的xxx_boxed.exe文件,如果运行没有问题那么可以直接将这个xxx_boxed.exe软件拷贝到其他电脑运行。

QT 项目打包提示缺少动态库