最近更新于 2022-04-05 12:37

开发中使用 qtcreator 可以运行调试,但是当把程序编译出可执行程序,直接在文件管理器中双击运行可能就不行了,会提示缺少 dll 文件。因为 Qt 调试时,它自己是知道 Qt 的库文件在何处的,而直接运行时系统并不知道 Qt 库文件在哪儿,运行程序默认搜索的库路径一个是在系统环境变量的设置中,另外一个就是程序所在的同一目录下。而且现实中程序开发完成后,是要发布出去的,对于用户而言难道还要来装 Qt 开发环境才能使用你的程序吗?所以就需要将程序依赖的库文件复制到程序所在的路径下,而 Qt 自己就带有一个打包库文件的工具 windeployqt。

基于 Qt 6.2.3 开源版测试,从 Qt 创建模板程序到构建再到打包演示:

打开 qtcreator 创建一个新项目

选择编译器(MSVC 2019)

默认是调试模式,发布程序应该选 release

然后构建

打开项目所在路径

进入上一层目录,见到下图类似文件,打开进去

测试运行程序,会提示找不到 dll 文件(动态库)

要让程序可以正常使用,需要将程序依赖的 Qt6 动态库拷贝过来。而 Qt 提供了一个打包工具,先进入 Qt 命令行

因为上面创建项目时选的编译器是 MSVC,所以这里进去 MSVC 的命令行里

执行 windeployqt [编译生成的程序文件路径]

然后就能在文件管理器双击运行了

作者 IYATT-yx