关于QT版本的安装配置的一些困惑
大概是之前安装和使用QT太顺利了,什么都没注意就开始使用了。在使用VS2012开发Qt5.31的程序一段时间以后,虽然好用,但是发现其编译的程序不能在XP上使用,要打补丁才行。不仅VS2012本身要打补丁,而且我使用的一个库也要有相应的区别选择,实在是够麻烦的。何况VS2012本身不能在XP下使用,所以思量着使用VS2005或者VS2008做开发吧,实在没办法VS2010也行,至少家里的XP老机子能用。没想到问题来了:
1. 之前装的是QT5.31 for VS2012,因此使用VS2010怎么编译都报错,害得我以为VS2010有问题,卸载后重装依然如故,浪费我至少2小时。原来是QT库的不同,网上另外下载QT5.31 for 2010安装即可。
2. VS2012自身太霸道,不知道怎么回事覆盖了我VS2010的默认C++编译选项,按照这篇文章改回来即可:
http://stackoverflow.com/questions/13663898/specified-platform-toolset-v110-is-not-installed
3. QT5 Add-in 虽然可以安装给VS2008使用,但是使用这个插件打开任何一个.pro文件都会出现莫名其妙的转换失败问题。而且我后来发现没有QT 5.31 for VS2008的版本,而且网上查了一下QT 5.0 5.1 5.2版本都没有专门的for 2008版本啊,莫名其妙提供这个安装选项干什么。但是隐约记得强行指定QT 2012库也可以编译,以后再回来确认。今天急着要做正式开发。
4. 我自己之前使用VS2005编译了一个QT 4.53的库,很好用,各种书籍的例子都畅通无阻。但是新建一个工程,编译运行没有任何警告。但是把工程库指向QT4.86的时候,就会发出警告,提示宏定义重复了:
1>c:\qt\4.8.6_2008\include\qtcore\../../src/corelib/global/qconfig.h(41) : warning C4005: 'QT_LARGEFILE_SUPPORT' : macro redefinition
1> command-line arguments : see previous definition of 'QT_LARGEFILE_SUPPORT'
使用VS2008新建一个空工程,使用同一个QT4.86库就没有任何问题。
------------------------------------------------------------------------------------
总结:
1. VS2005 + Qt4.53用来学习书上的例子,真是绝美。Qt 4.53是2009年年末发布的,做一般性的工程大概也够了,谁会需要那么多QT新特性啊,一般越是小白越起劲,人家KDE那么大的天文工程都使用QT4做出来了。
这是QT5的新特性列表:http://qt-project.org/wiki/Qt-5Features
2. VS2008 + Qt4.86做QT4的工程,也是没有任何问题,连个警告都没有。
3. VS2010 + Qt5.31做QT5的工程也不错,就是XP上运行太慢,另外别忘了给它装对应的QT5.31 for 2010
4. VS2012 + Qt5.31本来一直都觉得很好用,但是需要通过打补丁,而且是各种补丁,也能解决所有的开发与配置问题,但我不愿意折腾,何况也不能在XP下运行,所以放弃。
我目前这个工程打算迁移到方案2试试,不是自己编译的库,发布的时候应该更可靠一些。除了未来有可能会使用JSON,其它方面不需要任何新特性。如果开发遇到问题,就转到方案3。赶紧行动~
------------------------------------------------------------------------------------
补充1:VS2012使用QT 5.31 for 2010没有任何问题!看来VC的向下兼容做得不错。
补充2:
使用VS2008编译QT程序的时候,总是碰到这样的错误:
1>libcmtd.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D.dll)
在这里
Project Property->Configuration Properties->Linker->Input->Ignore Specific Library
填上:
libcmtd.lib
补充3:
至今没搞明白,如何静态编译QT的应用程序(不是QT自身,但这样有可能需要静态编译QT?),可能是这样设置:
Project Property->Configuration Properties->C/C++->Code Generation->Runtime Library
设置:
Multi-threaded (/MT)
同时忽略(同补充2):
LIBCMT.lib
(注意,Debug和Release版要分别设置一遍)
补充4:
如何简单发行QT的应用程序,使之不再依赖VS开发环境(加上VC的2个DLL应该还是可以的),可能是这样:
http://bbs.csdn.net/topics/310079403
http://support.microsoft.com/kb/148652
补充5:
好好的程序,Debug没问题,Release版发行程序怎么会缺了一部分资源图片呢?
补充6:
1>c:\qt\4.8.6_2008\include\qtcore\../../src/corelib/global/qconfig.h(41) : warning C4005: 'QT_LARGEFILE_SUPPORT' : macro redefinition
1> command-line arguments : see previous definition of 'QT_LARGEFILE_SUPPORT'
在VS2008中也出现了,要想办法去掉。
后续:找到qt\src\corelib\global\qconfig.h文件(双击编译错误就可以找到),找到这行:
#define QT_LARGEFILE_SUPPORT 64
替换成:
#ifndef QT_LARGEFILE_SUPPORT
#define QT_LARGEFILE_SUPPORT 64
#endif
关于QT版本的安装配置的一些困惑的更多相关文章
- QT开发环境安装配置教程
QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...
- centos7: svbversion版本的安装配置+tortoisesvn登录验证
centos7: svbversion版本的安装配置+tortoisesvn登录验证 命令工具:svnadmin create #创建版本库 hotcopy #版本库热备份 Islocks #打印所有 ...
- PyCharm+Qt Designer+PyUIC安装配置教程
Qt Designer用于像VC++的MFC一样拖放.设计控件 PyUIC用于将Qt Designer生成的.ui文件转换成.py文件 Qt Designer和PyUIC都包含在PyQt5中,所以我们 ...
- windows, fast-rcnn CPU版本的安装配置
一:安装准备 1:caffe的安装配置,本人用的是happynear大神的caffe版本,具体链接https://github.com/happynear/caffe-windows,编译时需要用到p ...
- mysql5.7版本免安装配置教程
自己花了两天时间才搞清楚,希望对新手有一定帮助,有问题可以联系哦! mysql分为安装版本msi,免安装要压缩版本ZIP,下载网址:http://dev.mysql.com/downloads 免安装 ...
- Centos7下配置Python3和Python2共存,以及对应版本Ipython安装配置
1.查看是否已经安装Python Centos7默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用python -V命令查看一下是否安装Pytho ...
- 运维笔记--SqlServer相关版本&下载&安装&配置远程连接
下载地址:SqlServer2008为例 SqlServer2008:https://www.microsoft.com/en-us/download/details.aspx?id=1695 Sql ...
- Python版本OpenCV安装配置及简单实例
# 2018-06-03 # 1. Python下载:https://www.python.org/downloads/ 选择对应平台对应版本的的Python进行安装. 2. Python版OpenC ...
- linux版本neo4j安装配置教程
https://blog.csdn.net/weixin_44293236/article/details/89467489
随机推荐
- 五分钟学习React(五):React两种构建应用方式选择
经过这四期的讲解,我们从Hello World应用入手,解释了React最重要的概念JSX,以及两种不同模式的应用构建方法.这一讲我们着重对比传统模式和新模式下的React项目构建,从而为初学者提供学 ...
- iOS CoreData 开发之数据模型关系
接着上一篇,上一篇中,我们简单的实现了一个用户实体,本次添加一个用户信息实体,与用户实体相关联,关系为1:1. 新建一个实体UserInfo:
- ionic2 打包时报错 file-opener2
在app自动更新过程中,有用到ionic-native插件:cordova-plugin-file-openner2 添加插件后,打包时有错: FAILURE: Build failed wit ...
- jQuery——val()、text()、html()
val():获取标签中的value属性的值.带有参数是赋值(类比js中的value属性) text():获取双闭合标签中的文本值.(不识别标签)(类比innerText) html():获取双闭合标签 ...
- java攻城狮之路--复习JDBC
1.JDBC中如何获取数据库链接Connection? Driver 是一个接口: 数据库厂商必须提供实现的接口. 能从其中获取数据库连接. 可以通过 Driver 的实现类对象获取数据库连接. 1. ...
- 【译】x86程序员手册00 - 翻译起因
从上一次学习MIT的操作系统课程又过去了一年.上次学习并没有坚持下去.想来虽有种种原因,其还在自身无法坚持罢了.故此次再鼓起勇气重新学习,发现课程都已由2014改版为2016了.但大部分内容并没有改变 ...
- CentOS7阿里云服务器,python程序requests无法正常post网站(报502)
问题描述: 使用jenkins构建接口自动化测试时,发现新增加的接口case不能访问通,会报502错误(本地可以跑通,在测试服就会502)解决的思路: 缩小调试范围(去掉jenkins db环境,将问 ...
- centOS7创建python虚拟环境
参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...
- FTP服务器访问主动模式、被动模式
在公司里面,经常需要访问外网FTP取资料等情况.但是有时用windows界面访问经常遇到各种问题. 下面介绍两种客户端是如何访问ftp服务器. 首先我们需要说明:防火墙,是阻拦外界与内部的通讯的一道关 ...
- MySQL之中文乱码问题
创建 my.ini 文件,在该文件中添加以下内容,放在安装好的mysql根路径下: [client] default-character-set=utf8 [mysql] # 设置mysql客户端默认 ...