欢迎光临
我们一起努力

QT5.8 VS2017 编译教程 静态编译 openssl

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补丁包

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

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中的路径,找到对应文件并打开。

找到以下标志

QMAKE_CFLAGS_RELEASE = -O2 -MD 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi 
QMAKE_CFLAGS_DEBUG = -Zi -MDd

修改成下面

QMAKE_CFLAGS_RELEASE = -O2 -MT 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi 
QMAKE_CFLAGS_DEBUG = -Zi -MTd

修改好之后,运行configure

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版本,大家可以根据自己需要选择。

如果你想静态编译 并且可以+openssl 可以用以下configure

当然你首先要参考我的这篇文档直接看第六步,编译好静态的openssl ?注意:我这里全部都是基于64位编译的。?https://www.liberobk.com/cpp/280.html

configure -mp -static -static-runtime -release -prefix "D:\Qt\vs2015_static" -I "D:\openssl_dll\include" -L "D:\openssl_dll\lib" -ssl -openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -sql-sqlite -sql-odbc -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests

 

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

赞(0) 打赏
未经允许不得转载:Libero's Blog » QT5.8 VS2017 编译教程 静态编译 openssl

评论 8

评论前必须登录!

 

  1. #0

    您好,根据您的教程,我这儿出现这个错误:
    F:qt-everywhere-opensource-src-5.8.0qt-everywhere-opensource-src-5.8.0qtimageformatssrc3rdpartylibwebpsrcdemuxanim_decode.c : fatal error C1083: 无法打开编译器生成的文件: “”: Invalid argument
    请教您一下,这个问题怎么解决,谢谢。

    xlshn@qq.com4年前 (2017-05-01)
    • libero

      请说明你的全部环境。

      libero4年前 (2017-05-03)
      • libero

        还有要注意名称路径不要过长。

        libero4年前 (2017-05-03)
        • 谢谢已经编译通过了
          1、重新把源码包解压,把路径改短了。
          2、先按教程把该修改的文件修改了(之前是编译出错后,才修改的)

          xlshn@qq.com4年前 (2017-05-04)
  2. #0

    编译后可以生成,但是在vs2017中添加路径后.新建项目.直接执行就出一堆未找到,未定义,式哪里有问题吗?我是指定了平台编译的,看你的这个configure没有指定平台,是不需要吗?

    匿名4年前 (2017-04-01)
    • libero

      在vs2017上面使用QT的插件。

      libero4年前 (2017-04-02)
      • 我用了qt的插件 link的时候提示 找不到符号 貌似都是第三方的 库 pcre zlib halfbuzz之类的 stackoverflow上有说 加-static-runtime 但是 加了之后 在link qt的过程中就已经报找不到符号的错误. 楼主有遇到吗.

        匿名3年前 (2017-08-20)
      • 你好,QT插件似乎并不能直接用于静态库使用,即便是官方商业版,都是直接报错该怎么配置呢,网络上基本都是vs2015的

        匿名2年前 (2018-07-30)