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

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

  • 相关阅读:
    JavaScript中的闭包(closure)
    JavaScript中的继承与原型链
    一个PHP操作大变量的例子
    深入PHP内核之参数
    django创建一个简单的web站点
    django通过添加session来保存公共变量
    第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    django搭建的站点,通过localhost能访问,但是通过ip不能访问
    django models实际操作中遇到的一些问题
    python3 django连接mysql,同步表结构
  • 原文地址:https://www.cnblogs.com/sip-inaction/p/13367243.html
Copyright © 2011-2022 走看看