Qt4.6.7程序打包发布

  我当前使用的IDE是Qt Creator4.9.1,它是安装Qt5.13版本自带的集成环境;因为工作需要使用Qt4的库,于是我就安装了Qt4.8.7和mingw32编译器(i686-4.8.2-release-posix-dwarf-rt_v3-rev3)进行Qt4程序开发,这个版本的IDE有不少bug,UTF编码的问题和卡死是经常遇到的问题。

  Utf8编码问题编译不过,只能将代码使用notepad++打开后,将*.h/*.cpp编码转换为utf-8 bom后保存,才能编译通过;卡死查了很多资料,都说是NVIDIA显卡设置3D集成显卡就可以,但是我的电脑是Inter显卡,我同样设置了3D的属性,没有重启电脑时,还是很卡。第二天来了后,不卡了,不知道是不是要重启电脑。现在这个卡死的问题没有出现了。

1.寻找exe程序依赖动态库

  1.1 通过IDE将程序编译为release版本;

  1.2 在mingw32编译器bin目录下找到:

  

  1.3 双击可执行程序,从Qt4.8.7安装bin目录下拷贝缺少的动态库即可;

  

 

2.使用NSIS将程序制作为安装包

  使用的是nsis3.0.5版本,和网上之前说的有些不同,所以我这个只能自己看着文档和示例,慢慢写脚本和调试。

  

2.1 安装过程中创建环境变量

  因为我们这个可能多次安装,如果存在这个环境变量,则将程序放到这个目录下,如果不存在,则使用前端选择的路径作为环境变量,因此将这段代码放置到Function/FunctionEnd代码段中。Function与Section的区别就是,Section是可以由用户在页面上选择执行的;Function则是有脚本控制,重点是执行逻辑。下面的2.2也相应的将代码写到各自的函数段中,由Section调用执行。      

  

2.2安装过程中创建目录,同时将对应的文件拷贝到相应的目录下

  

 

  看了一天实例和说明文档NSIS.chm后,写出了基本符合需求的脚本。还有许多待研究的地方,后面如果需要再研究。

注:

1.使用SendMessage实现环境变量立即生效;之前脚本中实现不行,因为在设置Path环境变量的时候使用了【%%】进行了拼接,导致设置成功了,但是还需要打开设置环境变量的界面确定下才生效;

不使用【%%】进行拼接,可以立即生效;

posted @ 2020-07-28 14:57  sp0917  阅读(564)  评论(0编辑  收藏  举报