Qt5.8.0在msvc2015方式下的静态编译过程记录

本文详细记录了在Visual Studio 2015环境下静态编译Qt 5.8.0的过程,包括下载源码、配置Makefile、编译Qt库及安装步骤。通过修改编译标志将动态链接改为静态链接,并解决了编译过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt 5.8.0在msvc2015方式下的静态编译记录

本次记录把Qt5.8.0源码在msvc2015community版下静态编译的过程。

  • 1、准备工作
  • 2、配置Qt的Makefile文件
  • 3、编译Qt库
  • 4、配置Qt库
  • 5、配置Qt Creator

第一步:准备工作

  • 下载Qty库源码
    在Qt官网上下载相应版本的Qt库源码。因为电脑上安装的是VS2015community,所以下载名为 For Windows users as a single zip file (565 MB) (Info) 的文件。
    Qt及源码下载
  • 下载Python
  • 下载Perl
  • 下载Ruby

注意:
1.Ruby要选择安装包版本
2.安装Python、Perl、Ruby时注意勾选添加到环境变量PATH
3.检测是否安装成功:打开CMD
输入python
输入perl -v
输入ruby -v

第二步:配置Qt的Makefile文件

  1. 下载的Qt源码解压到磁盘根目录:如G:\

注意:如果源码解压路径过长,将导致编译qtimageformats时出现无法打开编译器生成的文件“”:Invalid argument的错误。

我的解压路径为:G:\qt_src_5_8_0

  1. 进入解压后的Qt源码文件夹下的 G:\qt_src_5_8_0\qtbase\mkspecs 文件夹下。

  2. 再根据你安装的Qt版本进入相应的文件夹下,我这里是win32-msvc2015
    进入到相应文件夹

  3. 打开文件夹下的qmake.conf文件,根据它include的内容再定位到相应的文件。我这里是上级文件夹下的common目录下的msvc-desktop.conf文件。
    找到qmake.conf

找到相关文件

  1. 打开对应的文件后,找到以下编译标志:

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

将其中的MD全部修改为MT(就是将动态编译修改为静态编译):

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


注意:
Qt5.8.0有一个CPP文件
qtbase\src\plugins\generic\tuiotouch\qtuiohandler.cpp
包含了非ASCII字符,需要另存一个带BOM的UTF-8编码文件,替换原文件。否则编译会报错。


  1. 打开VS自带的命令提示符,在开始菜单中找VS2015的文件夹。
    打开VS2015命令提示符

  2. 在命令提示符中进入Qt源码目录G:\qt_src_5_8_0
    在命令提示符进入源码目录

  3. 输入Configure命令:

configure -confirm-license -opensource -debug-and-release -static -force-debug-info -prefix "G:\msvc2015_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -nomake examples

其中"G:\msvc2015_static"代表编译完后的安装目录,此目录不需要事先存在。这个执行不会花费很久时间。没有报错就下一步。

第三步:编译Qt库

  1. 执行nmake命令。
    nmake

注:此步大约会进行两到三个小时。

  1. nmake执行完毕之后,再输入nmake install安装。这个安装实际上是一连串的文件复制。

注:此步大约会进行二十到三十分钟。

  1. 执行完成后没有报错说明安装成功,G:\msvc2015_static文件夹中即为生成的Qt静态库。

第四步:配置Qt库

(未完待续……)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值