Windows静态编译Qt5.12.3源代码

本文详细介绍了如何从源代码编译Qt5.12.3,包括所需环境的搭建,如Visual Studio 2015以上版本、MinGW、Perl、Python和Ruby等。提供了具体的步骤,如环境变量设置、配置参数说明及编译过程,适用于希望深入了解Qt内部实现的开发者。

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

先附上一个参考链接:https://blog.youkuaiyun.com/spotian/article/details/77413064

1.获取Qt5.12.3源代码,解压。(如E:\)

2.建议查看源代码文件夹中的README,告知了编译之前的需要具备的必要条件。通过命令行 ./configure -h 也可以获取到不少必要的信息。 事先对此有一定的了解,可以在遇到问题的时候,更好地分析解决。

3.README中告知了,需要具备以下编译环境:

     Ensure that the following tools can be found in the path:
     * 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/]

点击对应的链接,安装即可。

对于编译器而言,上面的文字描述,应该是支持MSVC和MINGW,由于本机已经存在VS2013,故,一开始使用MSVC编译,./configure ... 时遇到一个问题:

qgenericatomic.h(274) : error C3646: “noexcept”: 未知重写说明符

贴吧中看到对于这个问题的说法是:“noexcept是现代C++的特性,需要VS2015以上的版本才能支持编译。”

也可能是我这边哪一步没走对,看到这个说法之后,没多深究,换MinGW了。MinGW离线包链接:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/5.3.0/threads-posix/dwarf/i686-5.3.0-release-posix-dwarf-rt_v4-rev0.7z

4.备好环境之后,设置相关的路径和环境变量,详细可参考开篇的参考链接。以下以我的实际环境为例:

源码解压至E:\qt-everywhere-src-5.12.3 ,

添加环境变量_QTDIT=E:\qt-everywhere-src-5.12.3

并在Path中添加路径:

PATH 
%_QTDIR%\ 
%_QTDIR%\qtbase\bin 
%_QTDIR%\gnuwin32\bin

另外,添加MinGW离线包bin文件夹的路径。(若Python, Perl, Ruby的相关路径不存在,也一样添加进来)

5.打开命令行终端,切换至qt源代码目录,

./configure -static -debug-and-release -opensource -confirm-license -platform win32-g++ -sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype --compile-examples=no -nomake tests -nomake examples -skip qt3d -no-opengl -prefix D:/soft/Qt-5.12.3-static

可以用过./configure -h 获取相关参数的说明,并根据自己的需要进行调整。

6.mingw32-make -j 4

进行编译,根据机器的情况,分配jobs数量。

7.mingw32-make install

8.完成之后,在QtCreator中,工具 - 构建和运行 - Qt Version - 添加, 找到编译好的qmake的路径,然后Apply。

然后切到旁边的“构建套件(Kit)” - 添加, 选编译器,对应的Qt版本即可。

### 关于Qt 5.12.3版本的信息 #### 下载 对于Qt 5.12.3的下载,可以通过访问中国科学技术大学镜像站点来加速这一过程。该网址为:`http://mirrors.ustc.edu.cn/qtproject/archive/qt/` 。在这里可以根据具体的需求选择对应的版本进行下载[^2]。 #### 安装 安装过程中需要注意的是,在启动安装程序之后可能需要多次点击才能看到实际的安装界面。在配置阶段,邮箱字段是必需填写项;如果是首次使用,则需提前注册账号。另外,当选择了要安装的具体组件后就可以继续完成整个安装流程了。 针对Windows平台上的静态编译情况,有特定的操作步骤可供参考。这涉及到通过命令行工具进入Qt源码所在文件夹并执行一系列参数设定以实现定制化构建的目的。例如,下面这条指令用于设置一些选项如启用SQLite支持、集成zlib库等,并指定了最终安装路径: ```bash ./configure -static -debug-and-release -opensource -confirm-license \ -platform win32-g++ -sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype \ --compile-examples=no -nomake tests -nomake examples -skip qt3d -no-opengl \ -prefix D:/soft/Qt-5.12.3-static ``` 这段脚本展示了如何利用MinGW作为编译器来进行静态度量工作[^4]。 #### 使用说明 一旦完成了上述操作,下一步就是创建简单的测试工程以便验证环境是否正常运作。此外,还有专门介绍QWT扩展包(即图形控件集合)的应用实例,其中提到将预编译后的`.a`格式链接库文件放置到指定位置从而让应用程序能够调用这些功能模块[^3]。 值得注意的是,在某些Linux发行版上可能会遇到编译错误的情况,比如重复定义符号等问题。这类问题通常是因为不同部分之间存在冲突或者依赖关系处理不当所引起的。解决方法往往涉及调整Makefile中的规则或是修改源代码本身以消除歧义[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值