1、下载QT5.8源码

这个我不做过多解释。

2、安装使用的环境

visual studio 2017  Python Perl  Ruby 安装好,并配置好环境PATH变量。

3、修改错误代码

错误一:qtbase\src\plugins\generic\tuiotouch\qtuiohandler.cpp 包含了非ASCII字符,需要另存一个带BOM的UTF-8编码文件,替换原文件。否则编译会报错。建议使用notepad++修改。

错误二:修改 qtbase/src/corelib/tools/qalgorithms.h。因为要修改位置太多,我直接给出源码包。

qalgorithms补丁包,或者qalgorithms.zip

4、如果你选择动态编译动态编译,请使用下面configure

  1. configure -developer-build -mp -confirm-license -opensource -debug-and-release -force-debug-info -prefix "C:\Qt\msvc2017_dynamic" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -nomake examples

接着,完成之后执行namke  再 nmake  install,时间有点长,慢慢等着吧。

5、如果你选择静态版本,请看下面的步骤

再根据你安装的Qt版本进入相应的文件夹下,C:\Qt\qt-everywhere-opensource-src-5.8.0\qtbase\mkspecs 。我这里是win32-msvc2017。进去之后,你会发现有一个qmake.conf文件。打开它。在qmake.conf文件在,你会发现一个include,请根据include中的路径,找到对应文件并打开。

找到以下标志

  1. QMAKE_CFLAGS_RELEASE = -O2 -MD
  2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
  3. QMAKE_CFLAGS_DEBUG = -Zi -MDd

修改成下面

  1. QMAKE_CFLAGS_RELEASE = -O2 -MT
  2. QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
  3. QMAKE_CFLAGS_DEBUG = -Zi -MTd

修改好之后,运行configure

  1. configure -mp -confirm-license -opensource -release -static -force-debug-info -prefix "C:\Qt\msvc2017_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -nomake examples

为了加快编译时间 我只编译了release版本,大家可以根据自己需要选择。

configure 完成之后,运行nmake   nmake install 就ok了。

https://www.liberobk.com/cpp/228.html

QT5.8 VS2017 编译教程(可以使用VS2017 XP兼容包)的更多相关文章

  1. 【全网首发】使用vs2017+qt5.12.4编译64位debug和release的qgis3.4.9

    一.摘要: 搜索网络没有发现一篇文章完整的介绍如何编译qgis3.4.x的debug版本,官方的指导也长时间不再更新. 所以前前后后花了4天搞定qgis的debug编译,并成功运行,废话不多说,直接上 ...

  2. VS2017 编译 Visual Leak Detector + VLD 使用示例

    起因 一个Qt5+VS2017的工程,需要进行串口操作,在自动时发现一段时间软件崩溃了,没有保存log,在 debug 的时候发现每运行一次应用占据的内存就多一点,后来意识到是内存泄漏了.这个真是头疼 ...

  3. Qt5.5.1和Qt5.3.2编译OCI驱动教程及验证方法

    我们都知道oracle数据库的强大,并且好多企业或者教学用到数据库时都会推荐使用.但是Qt因为版权问题没有封装oracle数据库专用驱动,网上也有一大堆说法和教程,但是或多或少的都有问题.下面废话不多 ...

  4. windows 平台使用 VS2017 编译openssl源码

    windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...

  5. VS2017编译GDAL(64bit)+解决C#读取Shp数据中文路径的问题

    编译GDAL过程比较繁琐,查阅了网上相关资料,同时通过实践,完成GDAL的编译,同时解决了SHP数据中文路径及中文字段乱码的问题,本文以“gdal-2.3.2”版本为例阐述整个编译过程. 一.编译准备 ...

  6. windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

  7. VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version

    VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll ve ...

  8. CM12同步源码及编译教程

    同时提供基于安卓5.0的MKL魔趣猪扒饭编译教程~[玩机组出品]魔趣猪扒饭MKL50.1编译教程http://www.oneplusbbs.com/forum.php?mod=viewthread&a ...

  9. gRPC编译教程

    windows平台的编译 一.编译openssl ① 安装perl(可以使用ActivePerl),执行perl Configure VC-WIN64A no-asm .在这里解释一下参数含义,VC- ...

随机推荐

  1. Java String对象的经典问题(转)

    public class StringTest { public static void main(String[] args) { String strA = "abc"; St ...

  2. boost::any在降低模块之间耦合性的应用

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在开发大型系统中,遵循这样一个原则:模块之间低耦合,模块内高内聚.比如系统中模块有界面模块和算法模块两种,一般是界面模 ...

  3. 我的MBTI职业性格测试

    背景 最近在看<程序员的思维训练--开发人之前能的九堂课>,其中讲到了 MBTI 职业性格测试的指导意义.记起来两年多以前在面试 ASES 的时候有做过这个测试,只可惜当时的测试结果在好几 ...

  4. C#后台调用前台js方法

    前台js方法(写在head标签之内) <script type="text/javascript" language="javascript"> f ...

  5. 机器审核图片学习(2)安装pornDetector所用环境-python、scikit-learn、opencv

    1.安装python 下载安装即可:最好是C盘 路径:https://www.python.org/ 将Python的安装路径加到path环境变量中,Python/Scripts加到path环境变量 ...

  6. Android 光标位置设置

    EditText edit =(EditText) findViewById(R.id.etTest); 1.设置光标在EditText中的指定位置 edit.setSelection(1); 需要注 ...

  7. Android程序猿必掌握的sqlite数据库连表查询

    SQL查询的基本原理:两种情况介绍. 第一.   单表查询:依据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后依据SELECT的选择列选择对应的列进行返回终于结果. 第二 ...

  8. Windows下静态编译Qt4

    既然是静态编译,那就要编译出来的程序不信赖于任何dll文件.首先下载qt-win-opensource-4.7.4-mingw.exe: http://get.qt.nokia.com/qt/sour ...

  9. 利用tcpdump分析工具来验证tcp连接的建立和关闭过程

    本文要求读者在阅读之前应该对TCP通过三次握手建立和关闭连接有一定的了解,本文并没有详细讲解三次握手,只是通过一个实例对三次握手进行了一下验证. tcp连接的建立和关闭想必大家都已经非常熟悉了!通过三 ...

  10. python 教程 第一章、 简介

    第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...