参考链接 :https://blog.csdn.net/weixin_52435933/article/details/128291291
一.准备工作
1.对应版本的源码 :
下载Qt 5.15.2的源码
https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
2.编译需要的环境
(1)homebrew 快捷安装工具! – 辅助作用
(2)安装cmake 推荐观看 – xcode安装!
二.开始编译工作
1.设置arm64版编译并生成makefile
cd path
#解压压缩包
x qt-everywhere-src-5.15.2.tar.xz
#创建文件夹buildir
mkdir buildir
cd buildir
#设置arm64版编译并生成makefile
../qt-everywhere-src-5.15.2/configure -release -prefix ./outDir -nomake examples -nomake tests QMAKE_APPLE_DEVICE_ARCHS=arm64 -opensource -confirm-license -skip qt3d -skip qtwebengine
#接下来会生成很多命令,不用管
- 补充理解这段脚本是用于配置 Qt 5.15.2 源代码的命令,具体含义如下:
../qt-everywhere-src-5.15.2/configure
:运行位于上一级目录的qt-everywhere-src-5.15.2
目录中的configure
脚本,该脚本用于配置 Qt 的构建选项。release
:指定构建类型为发布版本,即优化后的版本,适用于最终发布的应用程序。prefix ./outDir
:指定安装目录为当前目录下的outDir
子目录。这意味着构建完成后,Qt 库和工具将被安装到./outDir
目录中。nomake examples
:跳过构建 Qt 自带的示例程序。这样可以减少构建时间和生成的文件数量。nomake tests
:跳过构建 Qt 的测试程序。同样可以减少构建时间和生成的文件数量。QMAKE_APPLE_DEVICE_ARCHS=arm64
:指定在 macOS 上构建时使用的架构为 arm64。这是为了支持苹果的 M1 芯片等基于 ARM 架构的设备。opensource
:指定构建开源版本的 Qt。confirm-license
:自动确认 Qt 的开源许可证。skip qt3d
:跳过构建 Qt 3D 模块。skip qtwebengine
:跳过构建 Qt WebEngine 模块。
通过这些选项,可以根据需要定制 Qt 的构建过程,选择要构建的模块、指定安装目录、优化构建类型等。这样可以生成一个符合特定需求的 Qt 版本,用于开发应用程序。
2.修复编译问题
(1)头文件缺失问题修复
#step one : vim打开如下文件
vim path/qt-everywhere-src-5.15.2/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
#step two : find找到如下文件位置
#include <qpa/qplatformgraphicsbuffer.h>
#include <private/qcore_mac_p.h>
#step three : 增加如下头文件
进入vim的插入模式,在该语句块前加上
#include <CoreGraphics/CGColorSpace.h>
(2)增加结构体的名称
# step one :
vim path/qt-everywhere-src-5.15.2/qtlocation/include/QtLocation/5.15.2/QtLocation/private/../../../../../src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h
# step two : 在esc按键后,shift + : => 输入:set number后显示行号
然后将523行处的typedef struct {改为typedef struct MapPolylineEntry {
# step thee : 改完后保存退出
3.开启所有进程进行编译
#在buildir目录下
make -j$(nproc)
- 补充理解
make -j$(nproc)
是一个在 Unix/Linux 系统上常用的命令,用于并行编译项目。让我们来详细解释一下这个命令的各个部分:make
:这是一个构建工具,通常用于自动化编译程序。它会根据 Makefile 文件中的规则来构建目标文件。j
:这是make
命令的一个选项,用于指定并行执行的任务数量。通常,j
后面会跟着一个数字,表示要同时运行的作业数量。$(nproc)
:这是一个 shell 命令替换,nproc
是一个用于获取系统处理器核心数量的命令。因此,$(nproc)
会被替换为系统当前可用的处理器核心数量。
综合起来,
make -j$(nproc)
的意思是使用系统上所有可用的处理器核心来并行编译项目。这样可以显著加快编译速度,尤其是对于大型项目来说。例如,如果你的系统有4个处理器核心,那么
make -j$(nproc)
就相当于make -j4
,即同时运行4个编译任务。请注意,并行编译可能会消耗更多的系统资源,因此在资源有限的系统上,你可能需要根据实际情况调整
-j
后面的数字,以避免系统过载。
4.开始安装
make install -j$(nproc)
三.应用Qt库
此处使用Clion
1.安装Qt5的项目 : Qt Widgets Excutables
2.配置上面编译好的Qt项目
set(CMAKE_PREFIX_PATH "/Users/alittle/Qt/5.15.2/clang_64/lib/cmake/Qt5")
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)