VS2017+QT5.10编译QT静态库

准备工作

*Supported compiler (Visual Studio 2012 or later,MinGW-builds gcc 4.9 or later) 
* Perl version 5.12 or later [http://www.activestate.com/activeperl/] 
* Python version 2.7 or later [http://www.activestate.com/activepython/] 
* Ruby version 1.9.3 or later [http://rubyinstaller.org/] 
我Visual Studio 安装的是2017版本,Perl,Python,Ruby等都是在官网下载的最新版本 
还需要去qt官网下载Qt源码,这里我下载的是qt-everywhere-src-5.10.0.zip。

修改配置文件

解压Qt源码。 
打开Qt源代码路径下面的qtbase\mkspecs\common\msvc-desktop.conf

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi 
QMAKE_CFLAGS_DEBUG = -Zi -MDd

在文件里面会找到上述三句话。 
其中-MD -MDd 代表的是动态库,需要改为-MT -MTd

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT 
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MT -Zi 
QMAKE_CFLAGS_DEBUG = -Zi -MTd

配置Configure

 
右键以管理员方式运行。 
由于Vs自带的命令行在进入的时候会自动配置PATH,所以后面对于VS的path可以不用配置 
之后 cd 进入源码的所在文件夹 
这里写图片描述 
执行configure命令

configure -confirm-license -opensource -debug-and-release -static -force-debug-info -prefix D:/QT-msvc-qt5.10-static -nomake examples -nomake tests -opengl dynamic  -platform win32-msvc 

中间如果存在报错的话,直接去百度,因为一般都是环境变量的问题,把相应的东西加入环境变量就好了。 
我在configure的过程中并没有报错。

执行 nmake

在configure结束之后直接执行nmake,之后便是漫长的等待。 
编译结束提示无法找到atlbase.h。 我之后去百度了以下,然后大家给的结果是在VS2017里正在弱化ATL组件,所以我并没有在意这个问题,目前此处报错产生的后果未知。

执行 nmake install

在nmake完成之后,执行nmake install,Qt库就会安装在之前configure是-prefix的路径中,我的便是 D:/QT-msvc-qt5.10-static。 
与其说是安装,不如说把编译好的lib,pdb,.h分类整理一下。(只是感觉)

配置Qt Creator

首先从工具->选项->构建与运行->Qt Versions 
选择添加一个Qt Version,路径便是Qt静态库安装路径/bin/qmake.exe 
这里写图片描述
添加完Qt Versions 再添加构建套件 
名称可以随意写,重点是下面编译器和Qt版本。 
显然Qt版本就是我们之前所添加的Qt Versions,编译器必须使用Vc++的编译器,因为我们当时编译这个库用的是Vc++编译器。之后点击确定。 
这里写图片描述

编译好的静态库提供下载

我之后会把库传到百度云,会给下载链接。不想自己编译的可以直接下载。 
下载链接:https://pan.baidu.com/s/1mhSDvhI 密码:fwyu 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值