Qt程序打包之多版本环境切换问题

700 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

在Qt开发时,有时候为了保持新老项目开发环境不变,避免出现无法运行的问题,我们可能会同时在设备上安装多个版本的Qt,但安装后,在软件打包编译的时候一不小心可能会遇到使用错环境而导致程序运行异常,本文将介绍此问题的解决方法。

1、Qt程序打包

使用自带的windeployqt程序

  • 打包步骤:
    • 在Qt Creator中以release模式编译生成exe文件
    • 将exe复制到一个空文件夹中
    • 使用windeployqt命令打包:windeployqt XXX.exe

2、Qt多版本(或多编译器)打包问题

问题: 若直接运行cmd,使用windeployqt命令打包,系统会自动使用系统环境变量中的编译器的windeploy进行打包,若程序编写用的Qt编译程序与这个打包程序的版本不同,运行程序可能会出现异常

  • 博主系统中有Qt5.9和Qt5.15两个版本,使用这个方法打包时,系统使用Qt5.15打包Qt5.9程序,会出现如下报错:Cannot mix incompatible Qt library (5.9.0) with this library (5.15.2)
  • 解决方案:在开始菜单搜索Qt找到对应的Qt程序,双击运行,然后控制台窗口中,切换目录到要打包的exe文件的目录下,运行windeployqt XXX.exe进行打包,解决程序版本不一致问题!!! - 在这里插入图片描述 - 在这里插入图片描述

3、打包后无法连接mysql数据库

  • 参考:blog.csdn.net/weixin_4320… 1.如果是连接mysql数据库的,需要对应Qt编译器下的libmysql.dll复制到要打包的exe程序所在文件夹 2.如果是连接oracle数据库的,需要将oci.dll和oraociei11.dll文件复制到要打包的exe程序所在文件夹