一直习惯用VS,做QT项目时,不停的来回切IDE有些不方便。研究了一下QT的编译。

实际QT编译的机制和cmake是相同的,QT的IDE使用pro文件进行项目管理。QMake通过解析pro工程文件,生成makefile进行工程编译。调试QT IDE自身没有调试工具,正常情况下会使用GUN的GDB或VS的CDB等一些外部调试器进行调试的。

实际QT的IDE就是一个外部工具的开发集成环境。可以完全抛开QT的IDE开发QT项目。

方法: 设置的方法是把QT中的命令使用VS中MakeFile工程替换处理。 提示: 这里介绍的不是使用QT插件转换QT工程这种方式

正常情况下完全可以写一个批处理,编译时直接执行一次。不过在VS中编译主要一个好处,编译的警告和错误信息可以双击定位。如果不需要看警告和错误信息,也可以直接使用批处理命令进行编译。

1. 安装QT插件

  • a) 可以转换QT工程
  • b) 在调试时能看到QT类型的变量信息

菜单:Tool->Extensions and Updates…

2. 使用QT插件转换工程

导入QT工程的目的是用于编辑,为了减少配置量。如搜索路径,自能提示和代码跳转,需要正确的源代码目录。

问题:
a、 插件工程导入会有些问题,中文不认识会变成??
b、 有绝对路径设置的,可能会出现错误

处理:
直接使用记事本打开VS的工程,删除即可。

3. 创建编译工程

这步用于取代Qt中的编译处理。

  • a、 创建MakeFile工程

  • b、 配置编译路径(Intermediate Directory)

    • a) 右击工程->选择工程属性菜单
    • b) 选择 通用->设置 中间路径(构建目录) 和 QT中设置的构建目录一致

设置中间路径目的是为QMake生成的Makefile到指定目录。不设置默认会生成在工程目录(可以正常使用)

  • c、 设置调试工程
    • a) Command 直接指向调试exe

  • d、 设置编译NMake

实际编译命令即为QT中的编译命令组合,VS中多条命令之间使用 && 进行连接

如:编译 moguf.pro
. Qmake工程
.联编
qmake.exe D:\moguf\code\moguf.pro -r -spec win32-msvc2010
"CONFIG+=debug" && cd /d D:\moguf\make &&
E:\Qt\Tools\QtCreator\bin\IncrediBuild.bat

其他命令清除、重新编译依次设置。清除命令对应 QT清除步骤设置。重编命令就是 清除命令 + 编译命令

  • e、 设置完成

4. 编译运行(OK)

  • a) 设置MakeFile工程为启动工程
  • b) 运行调试

在输出窗口就能看到Bulid信息,错误窗口可以看到编译错误和警告(双击可以定位到代码)。

使用VisualStudio2015开发QT项目的更多相关文章

  1. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  2. Go推出的主要目的之一就是G内部大东西太多了,系统级开发巨型项目非常痛苦,Go定位取代C++,Go以简单取胜(KISS)

    以前为了做compiler,研读+实现了几乎所有种类的语言.现在看语法手册几乎很快就可以理解整个语言的内容.后来我对比了一下go和rust,发现go的类型系统简直就是拼凑的.这会导致跟C语言一样,需要 ...

  3. Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

    Qt/C++开发人员眼中的Obj-C      对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...

  4. 【golang-GUI开发】项目的编译

    在上一篇文章里,我们讲到了安装therecipe/qt(https://www.cnblogs.com/apocelipes/p/9296754.html),现在我们来讲讲如何编译使用了thereci ...

  5. VA对于开发QT是神器,VA自动补全QT

    我怎么就忘了,VA也可以适用于VS下开发QT程序.其中QT的头文件自己增加,主要是: C:\Qt\4.8.6_2008\include 但还有一些特殊类不认识,所以还得继续增加: C:\Qt\4.8. ...

  6. 封装QtCore(在非Qt项目里使用QString,QJson,QFileInfo,QFile等类)

    单独封装QtCore 一直以来使用QT的特性使用惯了,很多东西QT都封装得很好.如果突然有一天,不使用QT开发了,是不是不习惯. 比如我们经常使用QString很多方法,string,wstring之 ...

  7. 用CMake 构建Qt 项目

    译:用CMake构建Qt项目作者: Johan Thelin  译者:赖敬文原链接:http://developer.qt.nokia.com/quarterly/view/using_cmake_t ...

  8. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  9. C语言可以开发哪些项目?

    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们在学习的过程 ...

随机推荐

  1. ABOUT ME/OI回忆录

    \(ABOUT\ ME/OI回忆录\) 博主是一个退役的老菜鸡啦,学\(OI\)两年没搞过什么很厉害的东西,也没有做过很多题目,但是还是挺喜欢\(OI\)的. 在退役之后可能不会经常上博客园了,估计也 ...

  2. jmeter编写beanshell及内置方法的使用

    (一)BeanShell简介 BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型.命 ...

  3. Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第五部分(Page 10)

    编写你的第一个 Django app,第五部分(Page 10)转载请注明链接地址 我们继续建设我们的 Web-poll 应用,本节我们会为它创建一些自动测试. 介绍自动测试 什么是自动测试 测试是简 ...

  4. ICDM Winner's Interview: 3rd place, Roberto Diaz

    ICDM Winner's Interview: 3rd place, Roberto Diaz This summer, the ICDM 2015 conference sponsored a c ...

  5. nodejs压缩

    在express中要用到压缩,把某一个文件夹压缩成zip,再返回到客户端提供下载. 用archiver库 var Archiver = require('archiver') router.get(' ...

  6. 让页面无刷新的AJAX、ASP.NET核心知识(9)

    AJAX简介 1.如果没有AJAX 普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,如果没有ajax,在youku看视频的过程中,就没法提交评论,页面会刷新,视频会被打断. 2.说说AJ ...

  7. 【leetcode 简单】 第七十三题 丑数

    编写一个程序判断给定的数是否为丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例 1: 输入: 6 输出: true 解释: 6 = 2 × 3 示例 2: 输入: 8 输出: true ...

  8. 49、多线程创建的三种方式之继承Thread类

    继承Thread类创建线程 在java里面,开发者可以创建线程,这样在程序执行过程中,如果CPU空闲了,就会执行线程中的内容. 使用Thread创建线程的步骤: 1.自定义一个类,继承java.lan ...

  9. C# 安装部署Windows服务脚本

    @echo off Installutil.exe 程序目录 F:\test\TestWindows.exe 服务程序目录 @sc start "服务名称" @sc config ...

  10. JS设计模式——7.工厂模式(示例-XHR)

    XHR工厂 基本实现 var AjaxHandler = new Interface('AjaxHandler', ['request', 'createXHR']); var SimpleHandl ...