最近用到了Qt Gui 但是发现官方安装器中仅提供动态库版本 静态库的需要自己搞定…

坑:

一个是解压缩的问题 一个是路径长度问题 还有一个坑爹的静态编译 运行报插件错误的问题

1:首先是下载源代码时 在windows上 尽量下载.zip压缩格式的 虽然大一些 不然下载.tar.xz压缩格式后使用某60解压 居然少文件…麻了

2:官方的仓库中下载下来的文件名都很长 比如 qt-everywhere-opensource-src-5.15.5.zip 解压后如果在套上一层 就成了qt-everywhere-opensource-src-5.15.5/qt-everywhere-opensource-src-5.15.5/… 这在编译到某个路径比较长的文件时就会报错…这在其他文章中居然没提到过… 当然路径中不要出现中文.

3:关于静态编译后报插件错误的

只需要在main.cpp中加入

Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);

原因貌似是windows相关的某些库未被静态编译到程序中 也有可能是我安装了qt的官方版本串了…
相关问题参考:https://stackoverflow.com/questions/16773789/qt5-static-build-yields-failed-to-load-platform-plugin-windows

题外话:
qt5.x支持 windows7系统估计也是现在大多数人坚持的理由吧…

开始:

1:

安装VS2022

安装Python 3.x https://www.python.org/ftp/python/3.11.0/python-3.11.0-amd64.exe (如在VS中安装了py环境 那么就不用管了)

安装ruby https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-devkit-2.7.6-1-x64.exe

安装prel https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi

下载QT 5.15.5源代码 https://download.qt.io/archive/qt/5.15/5.15.5/single/qt-everywhere-opensource-src-5.15.5.zip

解压QT源代码 注:目录不要有中文且尽量短一些 不然目录太长 后面会报错.

将 qt-everywhere-opensource-src-5.15.5/gnuwin32/bin 目录添加到环境变量Path中
2:
验证环境 cmd中键入

python --version
perl --version
ruby --version
flex --version

3:
修改编译配置 \qtbase\mkspecs\common\msvc-desktop.conf 将以下两项MD改为MT 最后一项改为MTd

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

4:

//在VS2022 x64 Native Tools 命令行工具中依顺序执行

cd 进入源代码根目录

//-prefix 用于配置安装目录

configure -prefix "C:\Qt\5.15.5_MT" -static  -release -nomake examples -nomake tests -opensource -confirm-license

//仅编译qtbase模块 就足以应付 大多数GUI工程了

nmake module-qtbase
cd qtbase

//安装到配置的目录

nmake install

5.配置 Qt Creator 很简单

6.配置 Qt Vs tools 也很简单

7.经测试 很完美.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据