起因:

本机Qt5.9是安装的,自带了qt命令行工具,qt5.15.2是从其他地方拷贝过来的,没有这个工具。当用Qt5.9的Qt Command Prompt执行windeployqt命令打包qt5.15.2开发的程序时,发现拷贝过来的库都是5.9版本,导致程序无法运行。为了使用qt5.15.2版本的命令行工具,于是探究其使用原理,仅限windows平台

Qt Command Prompt:

qt命令行工具

Qt Command Prompt实际上是一个配置好Qt环境变量的命令提示符,它通常是通过一个批处理文件(.bat)启动的。右键查看此快捷方式的属性,可以看到其指向的目标和运行的起始位置

在这里插入图片描述

	目标:C:\Windows\System32\cmd.exe /A /Q /K E:\Qt\5.15.2\mingw81_64\bin\qtenv2.bat
	可以看到本质上是cmd带着 /A /Q /K这三个参数运行了qt安装目录下的qtenv2.bat脚本

参数说明:

qtenv2.bat脚本内容:
在这里插入图片描述
此脚本的任务就是把此qt版本的两个bin目录添加到path环境变量,然后用cd强制跳转, /D是可以跨盘符跳转。
如果你的qt是从其他地方拷贝过来的文件夹,将上述路径替换为你的qt安装路径中的bin目录,然后创建一个快捷方式指向这个批处理文件,就实现了人工创建qt命令行工具。

cmd运行的 /A /Q /K:

  • /A 强制命令行使用ANSI字符编码输出结果
  • /Q 关闭命令回显,不显示执行的命令,只输出结果
  • /K 执行命令后保持命令行窗口打开,不自动关闭

结果:

按照上述原理修改了qtenv2.bat,并创建快捷方式指向此脚本,运行终端再打包程序,能够正常拷贝对于版本的库,程序正常运行。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐