Visiual Studio与QT对比
Win10下VS进行c++编程的痛点
- 功能没有整合,变量名、类名都贼长(是见名知义了,但是每次看都要半天,而且这么长的变名字导致程序密集,看的眼疼)
- 总是需要大段大段复制粘贴(为什么不把一大段功能整合?)
- MFC界面功能完善但是外观老套布局难(相比之下QtCreator就好很多,这也是QtCreator+QT类库用来做界面程序最大的优势了)
QT的优点
- 功能集成度高、功能分类明确、编程时逻辑清晰
- 跨平台,在linux和win下基本不用考虑操作系统差异
QT的缺点
- 环境配置远远不如Visual Studio,QtCreator配置环境全部放到.pro文件中,默认使用qmake配置工程,而不是cmake,原意应该是想更加简化cmake适应qt的环境,但是明明在qmake配置过(不论是头文件还是库文件),但是重新构建就是不管用,无解
- 编译时,常常出现symbol not found错误,一个简单的程序,又没有用到自己外部的库,却老是出现这种莫名其妙的错误
- 我的熟练的Ctrl+Z技能应该就是大二那会用QT练起来的,明明只是简单的加了几个回车,编译后缺出现symbol not found错误,赶紧回退回退,有时候万一不小心存盘了又找不到旧版,出现symbol not found后然后就完全没办法让程序通过编译,然后又要新建工程,然后把文件都拷贝过来,改来改去
VS+QT取长补短
上面说到了,VS在win下做c++开发天下无敌的有点就是完全可视化的环境配置,所有的头文件、库等等配置全部通过工程的属性中可以设置,相比于Qt Creator为了满足跨平台的需求,必须通过qmake文件(cmake也一样)配置,这种手动输入的方法,对于非常熟练、经验十足的大佬来说没有问题,但是对于一般人来说,要了解所有的qmake中特殊变量名比直接鼠标点点难得多,而且在windows下运行的程序,依赖的环境变量、还有很多我也不知道的东西,感觉比linux下多很多,如果全部都通过手敲代码的形式配置,又麻烦又难记。
所以综合这两者的优缺点,采用VS作为IDE用来配置工程依赖+QT类库进行开发,这种方法可行,很大程度上是自称宇宙第一无敌IDE Visual Stidio的功劳,完美得QT插件使得Qt、QtCreator等都可以完美集成到VS中来做(人家QT并不想鸟你而你却强行把人家包含进来干什么!),事实正面,VS在这方面做的确实很好,试了下,基本上不费事,可以完美在VS中开发QT,而且再也不用管qmake文件得编辑了
VS+QT安装
QT安装
- qt版本:5.9.3
- 下载地址:http://download.qt.io/archive/qt/5.9/5.9.3/
- 安装注意事项,编译器一定要选择msvc2015-64bit选项,其他可以都不用选择(msvc是win下专用的c++编译器,微软出品;工业相机的SDK程序出厂测试编译器是msvc;VS对msvc的支持性最好)
VS安装
- VS版本:2015 专业版
- 下载地址:http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso
- 该版本是官方的专业版,不用担心中毒什么的,激活密钥:HMGNV-WCYXV-X7G9W-YCX63-B98R2
- 安装过程中,选择编译器为msvc2015-x64、msvc2015-x86、MFC支持(以防万一要用)
QT与VS完美融合
教程地址:https://blog.csdn.net/yzy_1996/article/details/81939610
OPENCV安装
- opencv版本:3.2
- 下载地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/opencv-3.2.0-vc14.exe/download
- 不需要安装网上的编译,直接下载opencv win的编译好的包,直接解压后
- lib路径:$OPENCV_DIR/build/x64/vc14/lib/opencv_world320.lib
- include路径:$OPENCV_DIR/build/include/
大恒相机SDK安装
- 版本:V18.06.25.01
- 下载地址:http://gb.daheng-imaging.com/CN/Software/Cameras/Windows/Galaxy_V18.06.25.01_X86_Win_cn.zip
- lib路径:SDK_DIR/Samples/VC SDK/lib/x64/;
- include路径:SDK_DIR/Samples/VC SDK/inc/;
采坑记录
无法解析的外部符号 WinMain
这是因为windows应用程序分为两种,一种是console(控制台),另一种是windwos(窗口),QT相对于VS的分类属于console,需要将项目/属性/链接器/子系统一栏设置为:(/SUBSYSTEM:CONSOLE),如果设置为(/SUBSYSTEM:WINDOWS)则会找不到WinMain符号
stdafx.h not found
将程序中的这一句话注释,然后将项目/属性/c/c++/预编译头/预编译头一栏修改为不使用预编译头
#include "QLabel" QLabel not found
这是因为Qt5.9.3中,将QT加入VS后,默认只添加了QT_DIR/msvc2015_64/include/QtWidgets添加到include路径中
网友评论