VS2012RC编译Qt4.8.2完整过程.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最近用VS2012越来越爱不释手。但是Qt只提供VS2010的官方的安装包,暂时还不支持新版本的VS。于是,我需要手动用编译Qt4.8.2。过程也不复杂写下来做个记录吧。说明:  我以前编译Qt时喜欢用静态编译,这样做的好处是不需要VS的运行时库,也不需要qt的库,部署起来很方便。缺点就是Debug版本编译出来非常大,哪怕是个很小的功能编译出来基本上都15M左右,而且编译过程很耗时。现在我直接使用动态编译。我使用的Qt安装包是qt-win-opensource-4.8.2-vs2010.exe编译步骤:1. 建立环境变量QMAKESPEC win32-msvc2010 // 注意QTDIR S:\QT\4.8.2 // Qt的安装目录Path S:\QT\4.8.2\bin;注意: QMAKESPEC 还是 win32-msvc2010 因为如果要改成win32-msvc2012,需要改很多相关的配置。又麻烦又不安全。而且使用win32-msvc2010并不影响我们的结果。2. 修改 mkspecs\win32-msvc2010\qmake.conf  将 QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32 当中的1600改成1700QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t- 改为QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t3. 在开始菜单中找到 VS2012 x86 Native Tools Command Prompt 并运行这一步非常简单但很重要,一定要选择VS2012目录下的bat文件4. 在控制台中,切换到Qt的安装目录下。使用如下参数进行配置configure.exe -platform win32-msvc2010 -opensource -debug-and-release -shared -qt-sql-sqlite -plugin-sql-sqlite -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qmake -process -rtti -dbus -webkit -script -scripttools -no-dbus5. nmake 开始编译。 不过在编译过程中会遇到几个错需要手动修改一下代码。6. 第一个错误如下:.\wtf/HashSet.h(180) : error C2664: std::pair_Ty1,_Ty2::pair(conststd::pair_Ty1,_Ty2 ) : cannot convert parameter 1 from std::pair_Ty1,_Ty2 to conststd::pair_Ty1,_Ty2 在Qt的Src目录有哪些信誉好的足球投注网站这个HashSet.h将180行所在的函数以及它下面的函数用下面的代码替换:templateinline pair::const_iterator, bool HashSet::add(constValueType value){auto p= m_impl.add(value);return make_pair(typenameHashSet::const_iterator(p.first), p.second);}templatetemplateinline pair::iterator, boolHashSet::add(const T value){typedefHashSetTranslatorAdapter Adapter;typedeftypenameHashSet::iterator iter_type;auto temp = m_impl.templateaddPassingHashCode(value, value);return make_pair((iter_type)temp.first, temp.second);}7. 继续 nmake 遇到第二个错误platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constantplatform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion这个错误的原因是因为代码里面的非英文的引号造成的。原始的错误代码如下:return WEB_UI_STRING(Look Up “”, Look Up context menu item with select

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档