源码编译 Qt 6.2

Qt 6.2 源码构建 (动态库和静态库)

Qt 6.2.0 源码构建,win10、ubuntu、Mac平台下的动态库版本、静态库版本.

一、 源码下载

下载方式:

  1. qt-everywhere-src-6.2.0.tar.xz

  2. 通过Qt在线安装包安装qt时勾选Sources,源码会下载安装目录的Src文件夹.

  3. 从我的网盘里下载,下载后tar -jxf 6.2.0.bz2解压.

二、configure

1. ubuntu / Mac

动态库:

./configure -release -opensource -confirm-license -prefix /home/Qt/6.2.0/shared/

静态库:

./configure -release -static -opensource -confirm-license -prefix /home/Qt/6.2.0/static/

2. windows

在源码路径导航栏输入cmd,打开windows终端,

动态库:

configure -release -opensource -confirm-license -platform win32-g++ -prefix "D:\shared"

静态库:

configure -release -static -opensource -confirm-license -platform win32-g++ -prefix "D:\static"

-prefix 后面为make install的目标路径,后面qtcreator选择qt版本时会用到这个路径.

更详细的配置选项见官方文档:
Qt Configure Options.

我在这几个平台构建时,只使用了必要的选项,导致编译了不必要的模块,如果对Qt比较熟悉、对自己所在项目中使用的Qt模块比较熟悉的话,编译时可以禁用一些无关模块来加快速度。

三、 build

这一步所有平台(ubuntu\win10\mac)的命令均一致.

通过如下命令开始漫长的编译之旅:

make -j8

-j后面数字最好跟cpu的核心数保持一致,这样既可以拉满cpu,也不至于内存爆掉,不要使用cmake --build . --parallel 来编译,它会开启远超cpu核心数的线程数来编译,会有内存爆掉的风险,导致coredump,我第一次编译时就使用了该命令,直接导致内存100%,先是挤挂了我一个跑了一周的大型程序,然后自己coredump挂掉…

成功构建后,安装到-prefix指定的路径:

make install

期间可能会遇到一些报错,错误信息复制到谷歌一般都能找到答案.

四、 windows环境配置

windows平台的编译,我使用 mingw64工具链来编译.

1、mingw64环境配置

下载包:x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

无需安装,解压即可,解压后bin目录加入到系统环境变量。为了和linux下保持一样的使用体验,我把mingw32-make.exe 复制了一份,重命名为make.exe,这样mingw32-make和make命令均可以使用.

2、cmake

下载安装包: cmake-3.21.3-windows-x86_64.msi

安装完毕后,cmake.exe所在路径 加入系统环境变量.

3、perl/ruby/python

ActivePerl-5.28.1.0000-MSWin32-x64-118a97f8.msi

rubyinstaller-devkit-3.0.2-1-x64.exe

python-3.10.0-amd64.exe

这三个工具无需手动添加环境变量,安装时注意勾选添加到环境变量。

以上工具也可直接从我网盘里直接获取.

安装结束后,重启电脑 – > configure – > make – > make install

五、qtcreator

编译好库之后,安装qtcreator,在qtcreator里面配置qt版本。
简单起见我都是直接下载编译好的二进制,解压即可。
下载地址:
https://github.com/qt-creator/qt-creator/releases

六、 问题解决日志

1 . ubuntuconfigure失败,提示cmake版本过低.

sudo pip install cmake --upgrade

2 . 编译ubuntu动态库版本时,报错:

qvkgen: error while loading shared libraries: libQt6Core.so.6: cannot open shared object file: No such file or directory

运行从GitHub下载编译好的Linux版本的qtcreator时,也会有类似错误:

ww@DESKTOP-KBKJ5NU:~/qt/bin$ ls
qt.conf  qtcreator  qtcreator.sh
ww@DESKTOP-KBKJ5NU:~/qt/bin$ ./qtcreator
./qtcreator: error while loading shared libraries: libQt6Core.so.6: cannot open shared object file: No such file or directory

最后通过google找到解决方案:

sudo strip --remove-section=.note.ABI-tag /path_to/libQt6Core.so.6.2.0

3 . ubuntu安装完QtCreator后启动失败.

export QT_DEBUG_PLUGINS=1

之后再次启动QtCreator看到详细输出日志,显示某某动态库加载失败,然后按提示安装了以下库.

sudo apt install libxkbcommon-dev libxkbcommon-x11-dev libxcb-render-util0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-icccm4-dev

七、二进制

我把各平台下编译的静态库、动态库上传到了百度云盘,附带编译使用的源码、工具包.

链接:https://pan.baidu.com/s/13wm8HxQKdc2mFu7Ze_yooQ

提取码:a6fy


configure.bat -release -static -opensource -confirm-license -prefix "D:/qt6.6.0/vs_release_static"
configure.bat -debug -static -opensource -confirm-license -prefix "D:/qt6.6.0/vs_debug_static"

打开 vs 命令行工具 x64 Native Tools Command Prompt for VS 2022


下载地址
https://download.qt.io/archive/qt/6.6/6.6.0/single/

在 D:\qt_src\qt-everywhere-src-6.6.0\qtbase\src\corelib\global\qconfig.cpp 中更改安装路径为 ..
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luuyiran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值