• 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环境变量的时候使用了【%%】进行了拼接,导致设置成功了,但是还需要打开设置环境变量的界面确定下才生效;

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

  • 相关阅读:
    深入浅出:了解前后端分离优势、前后端接口联调以及优化问题
    深入浅出:了解JavaScript中的call,apply,bind的差别
    Vue2.0 搭建Vue脚手架(vue-cli)
    深入浅出:promise的各种用法
    深入浅出:了解常见的设计模式(闭包、垃圾回收机制)
    sql server xml 功能
    sqlite 用法
    PowerDesigner使用
    asp.net 开发注意的几点
    vue template
  • 原文地址:https://www.cnblogs.com/sip-inaction/p/13367243.html
Copyright © 2020-2023  润新知