关于QT自带的打包工具windeployqt的使用

首先,我们在桌面建立一个文件夹test;

然后,我们将qt写的一个exe文件拷贝进去dcmlib_test.exe

接着,我们打开QT的命令行工具

进入到test目录

cd C:\Users\Administrator\Desktop\test

接着输入:

windeployqt dcmlib_test.exe --qmldir C:\Qt\Qt5.7.0\5.7\msvc2013\qml

示例:windeployqt空格**.exe 空格--qmldir空格C:\Qt\Qt5.7.0\5.7\msvc2013\qml回车

然后就可以看到开始复制文件;

最后,我们去点击dcmlib_test.exe运行。

这时候一般情况不会有什么问题,但是有个别的会出现以下的问题,

第一,很多自己在程序里添加使用的库没有被打包到test文件夹下,需要自己手动拷贝,

第二,会出现,程序运行了,进程里也有运行的id,但是界面却没有显示,

          解决如下:这是因为打包少拷贝了一个文件夹,将Qt安装目录下C:\Qt\Qt5.7.0\5.7\msvc2013\qml\QtQuick的Controls.2拷贝到test目录下的QtQuick目录下

         正是因为缺少了Controls.2导致运行程序界面无法显示

第三,可能会出现缺少msvcp120d.dll和msvcr120d.dll的情况

            解决如下:上面这两个文件在系统的System32文件夹下有这两个文件,在vs的安装目录C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC

下也有这两个文件,而且有多个,

            这里我们要拷贝的是vs安装目录下的msvcp120d.dll和msvcr120d.dll这两个文件,具体用到安装目录下的那两个dll文件,根据系统或者编译器一个一个试把。

      注意:一定要以管理员身份运行cmd否则拷贝会不完全:

如果是QWidget的程序,直接将.exe文件拷贝到一个文件夹下,然后以管理员身份运行cmd,cd到.exe的文件夹下,输入windeployqt dcmlib_test.exe就可以了。

    

你可能感兴趣的:(QT,qt,c++)