打包过程举例
以下项目将生成一个名为 filter_detect_qt.exe 的包,用它来举例
1. 编译

2. 找到输出文件

3. 将该 exe 文件复制到另外一个空的目录

4. 该目录下打开 cmd 窗口,运行代码:
# 注:windeployqt 命令这里有个坑,见下文中的注意事项
windeployqt filter_detect_qt.exe
完成后会自动将一些库文件复制进来

5. 手动将一些依赖动态库复制进来
第4步会将qt相关的一些库自动复制进来,但代码中的一些依赖动态库还需自己手动复制。可以打开 filter_detect_qt.exe 提示你缺什么库就复制什么

以下为手动复制进来的库文件(注:因为是动态库文件,所以仅仅打开exe查看报错是不够的,有些库文件只有在特定情况下才会使用,所以最好是在项目开发过程中就维护好这些动态库文件)

再次打开 exe 文件发现可以正常运行了。
遇到的问题
windeployqt 找不到库文件

从报错可以看出这应该是环境变量的问题,它使用了 anaconda 下的某个 windeployqt 程序,可以使用 where 命令查看命令路径:
# 类似于 linux 下的 whereis 命令
where windeployqt
# 如果在 powershell 下 where 命令无输出的话,使用 where.exe
where.exe windeployqt

而我们真正要使用的是 Qt 下的 windeployqt 命令,可以使用 everything 找到

指定该命令路径即可
