Qt 的exe打包发布

来源:互联网 发布:淘宝代运营效果 编辑:程序博客网 时间:2024/06/07 07:44

Qt的exe发布分2个版本,Qt4和Qt5,


Qt5的打包相当简单,因为Qt5提供了一个叫windeployqt的指令,

我这里使用的是Qt5.7的版本,在程序里面找到Qt 5.7 for Desktop (MinGW 5.3.0 32 bit),打开后是想dos一样的命令行。

首先在Creator中选择release版本,如图


然后编译通过后,在build-XXXX-Desktop_Qt_5_7_0_MinGW_32bit-Release\release下会生成一个XXXX.exe的文件,

但是这文件暂时是不能运行的,因为缺少各种dll和库文件,然后另外建立一个文件夹,比如d:\test,这个时候就把XXXX.exe放进去

然后用之前Qt 5.7 for Desktop (MinGW 5.3.0 32 bit)打开的命令行输入

cd d:/test

windeployqt XXXX.exe

然后他会自动加入很多的库文件,完成后就可以运行了,先说到这里。一会儿说怎么打包成单一一个EXE


Qt4的EXE发布就比较复杂了,因为他没有这么一个成熟的软件来使用

使用我在这里使用的是Dependency Walker,请自行下载,

一开始和5一样,生成一个XXXX.exe,然后放在一个单独文件夹test中

然后打开Depends,然后打开XXXX.exe的文件,会如图显示


此处黄色问号的就是缺少的文件,然后在qt的mingw里面一一找出来就可以了


PS:

如果需要图标的,可以在.pro文件里面加上

RC_ICONS = icon.ico

然后找一个ico图标取名为icon.ico然后放在程序里一起编译


或者


先准备个ICO图标。

例如:icon.ico

然后新建一个icon.rc文件,在里面写上
IDI_ICON1           ICON DISCARDABLE "icon.ico"
 

然后把它和图标icon.ico一起放置到你的Qt工程的目录里面。

 

在.pro里面添加一行:
RC_FILE = myApp.rc 

 

最后在程序中添加如下代码:

//app是程序中唯一的QApplication对象

app.setWindowIcon(QIcon("icon.ico")); 




这些都弄好后,现在还是不方便,因为都是一堆文件这个时候可以使用另外一个软件,叫Enigma Virtual Box,

然后打开


封包主程序就是之前生成的XXXX.exe文件,下面增加就是可以让你顺利运行的那些dll和库文件,然后选择执行封包,就可以生成一个XXXX_boxed.exe文件

这个文件就可以单独运行啦


0 0