newcoderlife

静态编译 Qt
暂无文字描述
扫描右侧二维码阅读全文
01
2018/11

静态编译 Qt

本文记录了我使用 MSVC 2017 静态编译 Qt 5.11.2 的经历。

为什么要静态编译

最近接了一个外包项目,要求做一个字典爆破软件(详情请见“外包小计 BruteForce-Wallet”)。其中我使用了 Qt 制作 GUI。但是社区版的 Qt 不包含静态链接库,在分发的时候出现了许多问题。为了能在客户的 Win 7 64bit 盗版系统上成功运行,我决定静态编译一份 Qt 库以供使用。

准备

  • 编译需要的源代码一份(下载自 Qt 官网,网速不好的童鞋请自备梯子)
  • MSVC 2017,安装 VS 2017 时请勾选 C++ 相关内容
  • jom(多线程编译,下载自 Qt 官网)

编译

首先打开 MSVC 自带的命令行工具 “x86 Native Tools Command Prompt for VS 2017”,切换到源码目录下备用。

编辑源码目录下的 qtbase\mkspecs\common\msvc-desktop.conf,按照如下修改:

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT # MD 改为 MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MT -Zi # MD 改为 MT
QMAKE_CFLAGS_DEBUG      = -Zi -MTd # MDd 改为 MTd

之后切换到刚才的命令行工具,输入如下命令进行配置:

configure -confirm-license -opensource -platform win32-msvc debug-and-release -static -static-runtime -force-debug-info -prefix "X:\Qt\Qt5.11.2\Qt5.11.2_win32_static" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -nomake tests -no-compile-examples -nomake examples # 其中路径需要手动修改

上面的路径就是最后 Qt 的安装路径。配置的时间不会太长,配置完成后输入如下命令开始编译:

jom.exe -j8 # jom.exe 可能需要添加路径,-j 后面的数字为线程数
jom.exe install

当然,如果你不愿意使用 jom,在刚才配置的时候,也可以加入 -mp 参数使用微软默认的多线程编译。编译过程大约需要 1.5h。

如何使用

在 VS 里面安装 Qt for VS 插件,然后配置相关的 Qt 目录即可。网上推荐先使用 QtCreator 建立项目然后使用 VS 打开,我也不知道具体方便在哪里。。。

Last modification:May 30th, 2019 at 08:58 pm
点击广告投喂博主 以获得更快的访问速度!

Leave a Comment