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

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

  • 相关阅读:
    laravel5.2 开发中打印sql语句
    centos 安装 vsftpd
    linux 安装 DenyHosts 防止密码被暴力破解
    linux nginx 安装防火墙ngx_lua_waf
    mysql 下载资源地址
    微信公众号 access_token 没有过期 却失效
    centos 安装 composer
    五十个小技巧提高PHP执行效率
    yii 使用DB实现rbac 权限控制
    git 的使用
  • 原文地址:https://www.cnblogs.com/sip-inaction/p/13367243.html
Copyright © 2011-2022 走看看