Visual Studio 2015 自定义文件编译
自己编译好了 QT 5.6.0 Alpha 版本后,如何使用 VS2015 创建 QT 工程呢?
1、安装插件,安装失败!因为 VS2015 不再支持 ADDIN , 所以 QT-VS-ADDIN 只能支持到 VS2013
2、使用 QtCreator , 这个不习惯使用,而且速度慢
3、自己动手
第一个想法是在编译工程之前,遍历工程文件找出需要的文件,使用 uic、moc 编译出对应的文件,然后就可以正常编译了
但是该如何做呢?碰巧想起 CUDA 的安装教程里面就有关于 VS2010 的自定义文件类型如何编译的说明,因此找到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations 目录,里面有 MASM 的自定义编译过程配置文件
MASM.props MASM.targets MASM.xml 三个文件
因此照做,配置了 UI 文件如何生成 ui_*.h , ts 如何生成 *.qm ,以及 *.h 生成 moc_*.h,这些配置文件参考下文
在“解决方案资源管理器”中的工程上右键,选择“生成依赖项”/“生成自定义”列表中可以看到 QUI、QMO、QTS这三项,选中这三项,点击确定按钮
然后添加 ui 或 ts 文件到工程中,这些文件就可以在编译预编译头之前进行 uic 或者 lrelease 编译了,
对于 .h 文件,需要手工在文件的属性里面修改“项类型”为“QT MetaObject Header”,这不影响打开头文件进行编辑,识别类型定义,仅仅是编译时不再是普通头文件,而是可以进行 moc 的文件,因此只需要在类型中有 Q_OBJECT 定义的头文件修改为“QT MetaObject Header”;
编译工程时,首先编译 ui 、ts和需要的头文件,然后是预编译头,然后是工程中的文件
对于工程中的文件需要注意,例如 在 AppOutput.cpp 文件中,需要
#include "AppOutput.h"
#include "ui_AppOutput.h"
#include "moc_AppOutput.h"
如果有 ui 文件,那么就需要第二行,如果头文件中有 Q_OBJECT ,那么就需要第三行
编译,连接,OK,不需要插件也能正常编译 QT 工程了;
需要注意的是,需要在工程文件所在的位置创建一个目录 .GenerateFiles ,用来存放生成的 ui_*.h 和 moc_*.h 以及 qm 文件
配置文件下载连接:http://files.cnblogs.com/files/WonKerr/BuildCustomizations.zip
或者直接下载
备注:已经更新了自定义生成工具的配置文件,不需要手工创建 .GenerateFiles 目录了;
Visual Studio 2015 自定义文件编译的更多相关文章
- Win 7 x64 + Visual Studio 2015为WinXP编译可执行程序
造冰箱的大熊猫@cnblogs 2019/9/5 本文承接<Win7下使用Visual Studio为WinXP编译可执行文件>一文. - 在64位Win7(开发机)上,编写基于C的Win ...
- Xamarin.Forms教程下载安装Visual Studio 2015
Xamarin.Forms教程下载安装Visual Studio 2015 下载安装Visual Studio 2015 Visual Studio 2015是微软提供的IDE,其中集成了Window ...
- 新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法
1,到官网下载最新的boost,www.boost.org 这里我下载的1-63版本. 2,安装,解压后运行bootstrap.bat文件.稍等一小会就OK. 3,编译boost库.注意一定要使用VS ...
- [No0000AB]用Visual Studio 2015在 WIN10 64bit 上编译7-zip (32 bit)
1.7-ZIP简介 7-zip 是一款免费的压缩解压软件.ZIP格式的文件默认被苹果和微软支持,完全不需要额外安装其他软件就可以解压.但对于非US-ASCII编码的文件名和大于2GB的ZIP文件,可能 ...
- Visual Studio 2015的坑:中文字符串编译后成乱码
(2015年8月5日更新:微软已经修复了Roslyn的这个bug,详见 https://github.com/dotnet/roslyn/pull/4303 ) 昨天,我们用VS2015编译了博客程序 ...
- Visual studio 2015程序转Eclipse gun编译出现的问题总结
Visual studio 2015程序转Eclipse gun编译出现的问题总结 1.C++11支持 1)Project settings project右键-> c/c++ build -& ...
- Visual Studio 2015编译安装配置QT5.5.1(含QTWEBKIT)
尽管QT5.5.1和VisualStudio 2015都已经发布很久了,但是QT项目组视乎不会为QT5.5.1专门发布预编译的QT5.5.1 for windows(2015)版本的,也不会专门发布V ...
- Visual Studio 2015编译wxWidgets
宫指导说,换帅如换刀 程序员的编译器一换,基本套路必须都重练几次 使用wxWidgets并不难,但不能使用现有的库和工程配置文件,细节就必须理清楚 获取wxWidgets 官方的下载页面,下7z或zi ...
- Visual Studio 2015 编译错误 File 的值+乱码的解决方法
======================================== VS2015调试项目时,会报莫名奇妙的错误,如下图所示: 程序编译,提示有错误:Visual Studio 2015 ...
随机推荐
- newWindow 弹出的新窗口居中显示
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- int.TryParse非预期执行引发的思考
问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: int id = 1000; //Request.QueryString["id"] ...
- 消息队列 概念 配合SpringBoot使用Demo
转http://www.jianshu.com/p/048e954dab40 概念: 分布式消息队列 ‘分布式消息队列’包含两个概念 一是‘消息队列’,二是‘分布式’ 那么就先看下消息队列的概念,和为 ...
- SecureCRT终端上使用spark-shell时按退格键无反应的解决方法
问题:用SecureCRT远程连接至Spark集群,启动spark-shell却发现输错命令后却无法用退格键删除. 解决方法: 第一步: 在SecureCRT的菜单栏选择“OPtions(选项)”按钮 ...
- vivado编译出错 [Synth 8-729] [Synth 8-787]
http://www.cnblogs.com/pejoicen 打开vivado工程后,发现右上角如下图所示: 重新编译这两个ip核后,对整个工程synthesis,工程报错 [Synth 8-7 ...
- Linux之精灵进程
一.引言 工作中有时候可能会写一些这样的程序,它作为后台进程运行,生命周期比一般的进程要长,它在系统开机时运行,直到被强制关闭或者系统关机时退出.它就是精灵进程或者也叫做守护进程--daemon pr ...
- poj1182食物链--并查集
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种.有人用两种说 ...
- linux学习笔记18--文件/chmod/chown/chgrp
文件类型与扩展名: Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开 ...
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...
- Squares - poj 2002(hash)
枚举两个点作为一条边,求出正方形的另外两个点,利用hash查找另外两个点. #include<stdio.h> #include<string.h> #include<s ...