当前位置: 首页 > news >正文

QT5.12环境搭建与源码编译

一、概述
        QT版本:QT5.12.10
        Qt网址:http://download.qt.io/archive/qt/
        编译平台 ubuntu18.04


二、安装交叉编译工具链
1、获取交叉编译工具链 
        一般如果是编译系统如果有对应的gcc 就是用这个就可以了 比如rk3128 linux在rk312x-linux-no-sync-hyperlcd\prebuilts\gcc\linux-x86,分为aarch64和arm,如果没有的话 就是用下面的指令下载gcc并安装

        交叉工具链:gcc-4.9.3-64-gnu.tar.gz

2、安装交叉工具链

 tar zxvf gcc-4.9.3-64-gnu.tar.gz  -C  /

命令执行后,在系统 /opt 目录下会有:gcc-4.9.3-64-gnu

三、QT5.12.10 源码编译

1、编译准备
       一般只需要qt-everywhere,获取下载并解压出来

如果根目录里面有.sh 直接修改即可 没有.sh的话 重建一个run.sh,并输入如下内容

大致内容如下 关于第一句./configure -extprefix /opt/aarch64_qt5.12 是表示最后结果会存在这个位置

二、配置编译模块
如arm64位
./configure -extprefix /opt/aarch64_qt5.12 \
-opensource -confirm-license \
-release \
-strip \
-shared \
-xplatform linux-aarch64-gnu-g++ \
-make examples \
-nomake tools \
-nomake tests \
-widgets \
-dbus-runtime \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
--xcb=no \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-gif \
-ico \
-recheck-all如32位
./configure -extprefix /opt/arm_qt5.12 \
-opensource -confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-make examples \
-nomake tools \
-nomake tests \
-widgets \
-dbus-runtime \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
--xcb=no \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-gif \
-ico \
-recheck-all
2、开始编译

命令1: ./run.sh 备注:配置时会提示Do you accept the terms of either license? 选择 y 即可
命令2: make
命令3: make install

备注1:

如果出现以下错误'.ROR: Invalid command line parameter '
./myautoconfigure.sh: 2: -opensource: not found
./myautoconfigure.sh: 3: -confirm-license: not found那么原因是这个文件是 DOS 格式的,需要转换为 unix 格式。vi myautoconfigure.sh 然后 set ff = unix
(注意:这个问题在由windows 系统传向 linux 系统的shell 文件(.sh)经常出现。)

备注2 :

make 时间会比较长,需要耐心等待。
make install 后,会生成一个目录,在/opt/aarch64_qt5.12 

如果编译没有出错,成功生成aarch64_qt5.12 ,至此Qt源码编译完成。aarch64_qt5.12 会在下边qtcreator配置时会用到。

http://www.lryc.cn/news/393984.html

相关文章:

  • Android中android.fg线程和android.ui线程分别代表什么?
  • MATLAB 2024b 更新了些什么?
  • SSM高校教师教学质量评估系统-计算机毕业设计源码03344
  • 【Linux进阶】文件系统5——ext2文件系统(inode)
  • 华为云简介
  • Doris数据库---建表、调整表结构操作
  • 《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》
  • 实现多数相加,但是传的参不固定
  • Windows环境安装Redis和Redis Desktop Manager图文详解教程
  • SQL Server 2022的组成
  • 【大语言模型系列之Transformer】
  • 操作系统-懒汉式单例模式
  • 设计模式探索:策略模式
  • 提升效能:Symfony 性能优化实用指南
  • 1.pwn的汇编基础(提及第一个溢出:整数溢出)
  • 迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻
  • 封锁-封锁模式(共享锁、排他锁)、封锁协议(两阶段封锁协议)
  • 跨境干货|最新注册Google账号方法分享
  • MySQL第三天作业
  • 网络安全应急处理流程
  • 昇思25天学习打卡营第12天 | LLM原理和实践:MindNLP ChatGLM-6B StreamChat
  • 中英双语介绍加拿大多伦多(Toronto)
  • 【YOLOv9教程】如何使用YOLOv9进行图像与视频检测
  • Text2SQL提问中包括时间的实战方案
  • 点胶系统实战1-项目介绍
  • 【MYSQL】InnoDB引擎为什么选可重复读作为默认隔离级别
  • 数据列表组件-报表
  • 基于Android Studio订餐管理项目
  • 华为OSPF配置DR和BDR与指定DR
  • 【学习笔记】程序设计竞赛