VS QT 联合开发

  • 配置
    • 环境
    • 流程
    • SDK 更新
    • qt qmake 版本选择
    • qt 5 联合 vs2019
  • 问题
    • This application failed to start because it could not find or load the Qt platform plugin "windows" in
    • 打印输出
    • LNK2019 无法解析的外部符号
    • vs编译出现未加载 wntdll.pdb
    • LNK2001

配置

环境

推荐先安装好VS2017,
再安装好QT,注意选择对应的组件。

流程

方法1:点击vs2017的工具—扩展和更新—联机—搜索并下载qt
下载完成后,关闭vs2017,会自动安装,重启会有 Qt VS Tools的工具栏

方法2:手动下载
下载地址vsaddin
注意选择最新的安装,如我是选择2.7.1.

SDK 更新

打开VS2017 新建一个项目,点击项目—属性—常规
如果Windowns SDK版本不是10的话,选择10.

完成。

qt qmake 版本选择

Qt VS Tools > Options > Qt > Versions > Path

选择qmake文件,文件如图所示。

将Qt Designer 改为true

qt 5 联合 vs2019

  1. 将vs2019的语言版本由 c++14改为c++17. 点击确定应用于当前项目,点击应用则适用于所有项目。
  2. ui打不开,左击,选择打开方式,选择添加并设为默认。

问题

This application failed to start because it could not find or load the Qt platform plugin “windows” in

原因:release 下,未正确调用QT的动态链接库。如:同时装了QT和anaconda, 调用了anaconda的QT动态链接库。
解决方法:如果系统path中有QT和anaconda的环境变量,将QT移至anaconda之前;如果系统path无两者路径,则添加。

打印输出

问题:显示界面时,无法看到打印信息。
解决方法:工程->属性->配置属性->链接器->系统->子系统: 改为控制台

LNK2019 无法解析的外部符号

问题:未添加相关的库和依赖项;
解决方法:项目属性->Qt Project Settings->Qt Modules->添加勾选相应的库;
默认情况下勾选有库:core, gui, widgets.

vs编译出现未加载 wntdll.pdb

ui指针未初始化。

  • 用Qt Creator 创建的项目,默认ui为指针,Ui::MainWindow *ui;
  • 用vs 创建的项目,默认ui为对象,Ui::MainWindow ui;
  • 想要在vs中将ui改成指针,需修改两个地方:
  1. Ui::MainWindow *ui;
  2. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow);

LNK2001

在添加包含 Q_OBJECT的头文件时会出现此问题。原因是IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的。
是因为项目中含有中文路径,IDE不会自动生成。将路径改成全英文,删除并重新添加该文件即可。

vs_qt 联合开发相关推荐

  1. Halcon学习笔记(一):Qt+Halcon联合开发配置

    Halcon学习笔记(1):Qt+Halcon联合开发配置 首先是新建一个QT项目qtest_hc 方法一: 1)QT项目文件 qtest_hc 添加库: #1.包含目录添加 INCLUDEPATH ...

  2. W3C近期要闻:与Mozilla MDN合作联合开发Web平台文档

    作者 | W3C中国 「OpenWeb开发者」依托于BOW(Brillant Open Web)团队,是一个专门的 Web 技术建设小组,致力于推动 Open Web 技术的发展,将不定期为读者同步W ...

  3. 【华为云技术分享】GitHub联合开发

    [摘要] 本文主要讲解使用Github创建私有仓库实现联合开发的详细过程. 1 创建一个Github私有仓库 登录Github账号,点击new新建一个仓库. 新建仓库时,需要填写仓库名称,选择权限为P ...

  4. 软件集成:Simulink与STM32联合开发

    本文首先通过一个简单的Simulink模型生成代码,然后将代码copy到一个STM32工程中去编译软件.最后将软件下载到STM32F407中,通过串口输出Simulink计算的结果. 阅读本文需要有一 ...

  5. MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯

    MATLAB&STM32CubeMX联合开发系列--不用手写一行代码就能实现CAN通讯 从第一次搭建好MATLAB和STM32CubeMX的联合开发环境有一段时间了,之前已经发布了两个实例分享 ...

  6. eclipse与DW联合开发java web项目

    eclipse与DW联合开发java web项目 引言:在开发java web项目时,我们会先用eclipse搭建框架(ssm.ssh-)eclipse主要用在java的开发,但在eclipse上制作 ...

  7. 高光时刻 | 方正璞华联合开发的「人力资源法律服务共享平台」在创新创业大赛中获奖

    大赛介绍 2022武汉人力资源服务业创新创业大赛以"智慧赋能稳就业,数字助力保民生"为主题,由武汉市人力资源与社会保障局.武汉东湖新技术开发区管委会联合主办,旨在贯彻落实武汉市委. ...

  8. VIVADO+ZYNQ7000入门三,PS与PL的联合开发

    索引 一.目标 二.预备知识 三.工程实例 四.SDK开发 五.下载运行 一.目标 熟悉PS的底层硬件控制.熟悉PS与PL联合开发. 二.预备知识 我们从Xilinx的官方文档UG585的第二章可以了 ...

  9. Groovy 和 Java 联合开发环境搭建

    Groovy 和 Java 联合开发环境搭建 1. 在主 pom 的 properties 中加上 <groovy.version>2.5.2</groovy.version> ...

最新文章

  1. ASP.NET Core 2.1带来SignalR、Razor类库
  2. 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
  3. r语言把两个折线图图像放到一个图里_图像相似度度量
  4. php 处理树形数据,php实现的树形结构数据存取类实例
  5. WAF机制及绕过方法总结:注入篇
  6. 王译潇20162314 第九周作业总结
  7. java删除文件夹及其内部文件
  8. cef 前进后台 实现_使用CefSharp前端后台交换
  9. 客户下单邮件跟进书写
  10. Android图片文件的压缩
  11. Tomcat服务器的使用
  12. 网页版手游怎么选服务器,吃鸡怎么看自己选的哪个服务器 | 手游网游页游攻略大全...
  13. 达梦数据库SYSDBA密码攻略
  14. 计算机一级wps office考试题库,2017计算机一级WPSOffice复习题(含答案)
  15. 【分页存储管理】将十六进制的虚拟地址0A5C、103C、4251转换成物理地址
  16. 如何利用python画三棱锥_blender插件DEMO,添加一个三菱锥
  17. 02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?
  18. DOS命令之For命令用法
  19. Vue实现百度下拉提示搜索
  20. 范济安:我所知道的云计算

热门文章

  1. iOS开发网络篇 一一 请求路径(URL)中文转码问题
  2. 服务器中域名过白名单是什么意思
  3. html+Web超大视频上传解决方案
  4. mysql默认密码的查找与修改
  5. 2021开学平价蓝牙耳机推荐,实惠好用的蓝牙耳机盘点
  6. php程序员拜年代码,阿里大于PHP版短信发送DEMO代码实例
  7. [转载][old] linux 下通过wine 运行windows程序包括IE
  8. angular中常见的管道及用法
  9. C++学习(四八六)lldb parent failed to evaluate variable not available
  10. 第34天-WEB 漏洞-逻辑越权之支付数据篡改安全