Qt使用过程

简介

  • ui_xxx.h文件 setup(ui)
  • 继承 QMainWindow或者QWidget,用代码写。不要忘了初始化对象的时候加上this
  • 主函数初始化,show,return,显示框框。开始监听Qtimer,Qthread等等。

技巧

每次更改平台X86到X64的时候,更改一下输出目录中间目录。然后重新生成,如果报链接到debug或者非平台的错,把工程里面的 Generated Files 全部移除即可。

VS中Qt报错

报link错:

查看链接器->输入->附加依赖项是否正确,是否包含了d(debug)等

莫名其妙的错

将文件移除,再添加进来。值得注意的是,有的时候需要先点击清除,然后执行qmake,然后重新编译。要不然也会碰到模型奇妙的问题。

Qt creater中报错

C1902

报错内容如下

1
fatal error C1902: 程序数据库管理器不匹配;请检查安装

解决方法:

以VS2015为例,将C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin中的mspdbsrv.exemspdbcore.dllmspdb140.dll文件与目录C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE下的保持一致。那边缺少,将另外一边的复制过去。若都有,但是不一致,一般教程都以C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE为基准,复制到另外一个文件夹。

qwt库

因为编译库的时候会指定放库的目录,所以必须把qwt-6.1.3文件夹路径为C:\Qt\qwt-6.1.3

matlab runtime

如果直接迁移别人的matlab库放在自己电脑中运行的时候,注意,安装MCR的版本要与之前编译出库的matlab编译器版本一致。也就是说,若该库是在matlab2015上编译的,那么在自己电脑上要安装matlab2015对应的MCR库。

MRC库安装完毕后,在系统环境变量天剑环境变量。名字为MCR,值为C:\Program Files\MATLAB\MATLAB Runtime\v85\runtime\win64

如下图所示:

Qt程序打包

在Qt creator构建出release版本,例如构建出的文件夹为build-Mul_Thread-Desktop_Qt_5_8_0_MSVC2015_64bit-Release。构建出的目录内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
├─data
│ ├─labels
│ └─voc
├─debug
├─log
│ └─20190627
├─release
| darknet.dll
| darknet.lib
| pthreadGC2.dll
| pthreadVC2.dll
| Mul_Thread.exe
└─tiny
| 1.jpg
| coco.data
| test.jpg
| test4.jpg
| th.jpg
| voc.data
| voc.names
| yolov2-tiny-voc.cfg
| yolov3.cfg
| yolov3.weights
| 副本.jpg

里面的可执行文件为release\Mul_Thread.exe,所需要的dll文件放在release下,权重和图片文件放在tiny文件夹下,所需要的掩模和参数文件放在data文件夹。

新建一个文件夹为Mul_Thread,将release\Mul_Thread.exe放到该文件夹中,打开windows开始菜单,找到Qt 5.8.0->Qt 5.8 64-bit for Desktop (MSVC 2015),如下图所示

打开Qt 5.8 64-bit for Desktop (MSVC 2015),切换路径到Mul_Thread文件夹。这里我的该文件夹的路径为E:\ing\darknet_yolo_windows_qt\Mul_Thread,切换指令为cd /d E:\ing\darknet_yolo_windows_qt\Mul_Thread。接着输入指令windeployqt Mul_Thread.exe,Qt会自动将你程序所需的dll文件移动到该目录。如下图所示:

执行完此命令后,可以看到Mul_Thread文件夹内容如下:

接着将build-Mul_Thread-Desktop_Qt_5_8_0_MSVC2015_64bit-Release\release下运行Mul_Thread.exe所需的dll依赖放置到Mul_Thread文件夹根目录;将build-Mul_Thread-Desktop_Qt_5_8_0_MSVC2015_64bit-Release下的datatiny文件夹放置到Mul_Thread文件夹根目录。此时就可以双击Mul_Thread\Mul_Thread.exe,即可运行。拷贝该文件到其余电脑也可运行。

值得注意的是,若你的程序需要特殊的运行环境,拷贝打包好的文件夹到别的电脑上,也是需要这些特殊的运行环境的。例如我的这个程序运行需要CUDA8.0、CUDNN环境,则若电脑无该环境,打包好的程序也是无法运行的。
另外,若已经打包完毕,想要更改程序,只需要更改Qt程序,然后使用Qt creator编译代码,产生新的Mul_Thread.exe,拷贝到Mul_Thread文件夹即可。

参考

fatal error C1902: 程序数据库管理器不匹配;请检查安装
QT5应用程序打包与发布

------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道