『heqingchun-ubuntu交叉编译arm版本Qt』_ubuntu中安装的qt5如何交叉编译armv7l版本应用-程序员宅基地

技术标签: qt  ubuntu  linux  arm  

ubuntu交叉编译arm版本Qt

一、更新、安装基础依赖

sudo apt update && \
sudo apt upgrade -y && \
sudo apt install -y build-essential python

二、准备文件

1.新建目录

mkdir qt

2.下载文件

(1)gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar

网址

https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/

点击"gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"下载
配置

tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar && \
sudo cp -fr gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu /opt/ && \
str='export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:"$"PATH' && \
sudo sh -c "echo $str >> /etc/profile" && \
source /etc/profile

重启后打开终端输入"aa",连续按两次"Tab"键,出现如下表示成功:

aa-enabled                       aarch64-linux-gnu-cpp            aarch64-linux-gnu-gcc-nm         aarch64-linux-gnu-gfortran       aarch64-linux-gnu-objdump        aa-status
aa-exec                          aarch64-linux-gnu-dwp            aarch64-linux-gnu-gcc-ranlib     aarch64-linux-gnu-gprof          aarch64-linux-gnu-ranlib         aa-teardown
aarch64-linux-gnu-addr2line      aarch64-linux-gnu-elfedit        aarch64-linux-gnu-gcov           aarch64-linux-gnu-ld             aarch64-linux-gnu-readelf        
aarch64-linux-gnu-ar             aarch64-linux-gnu-g++            aarch64-linux-gnu-gcov-dump      aarch64-linux-gnu-ld.bfd         aarch64-linux-gnu-size           
aarch64-linux-gnu-as             aarch64-linux-gnu-gcc            aarch64-linux-gnu-gcov-tool      aarch64-linux-gnu-ld.gold        aarch64-linux-gnu-strings        
aarch64-linux-gnu-c++            aarch64-linux-gnu-gcc-7.5.0      aarch64-linux-gnu-gdb            aarch64-linux-gnu-nm             aarch64-linux-gnu-strip          
aarch64-linux-gnu-c++filt        aarch64-linux-gnu-gcc-ar         aarch64-linux-gnu-gdb-add-index  aarch64-linux-gnu-objcopy        aa-remove-unknown
(2)qt-everywhere-src-5.12.9.tar.xz

网址

https://download.qt.io/archive/qt/5.12/5.12.9/single/

点击" qt-everywhere-src-5.12.9.tar.xz"下载
下载后解压"qt-everywhere-src-5.12.9.tar.xz"文件

三、安装依赖

1.终端apt依赖

sudo apt install -y gperf \
bison \
flex \
llvm \
libxcb* \
libxslt1-dev \
ruby \
libssl-dev \
libcap-dev \
libxtst-dev \
libpci-dev \
libnss3-dev \
libclang-6.0-dev

2.修改一些配置文件

修改以下文件

gedit qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

增加以下内容(在QMAKE_INCREMENTAL_STYLE = sublib与include(…/common/linux.conf)之间)

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

在文件中的"aarch64-linux-gnu"加上具体路径,最后文件

#
# qmake configuration for building with aarch64-linux-gnu-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX               = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK              = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM                = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP             = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)

将文件夹移动至/opt

sudo cp -fr qt-everywhere-src-5.12.9 /opt/

四、configure

cd /opt/qt-everywhere-src-5.12.9
sudo ./configure \
-prefix /opt/Qt5.12.9-arm \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info

五、编译安装

1.编译

sudo make -j $(nproc)

2.安装

sudo make install

六、配置Qt环境

打开Qt
依次点击“工具”,“选项”,“Kits”
需要配置:“编译器”、“Qt Versions”、“Kits”
1.“编译器”:
点击“添加”,“GCC”,“C”
名称填写:“AArch64GCC”
编译器路径选择:“/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc”
点击“Apply”
再点击“添加”,“GCC”,“C++”
名称填写:“AArch64G++”
编译器路径选择:“/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++”
点击“Apply”
2.“Qt Versions”
点击“添加”
选择:“/opt/Qt5.12.9-arm/bin/qmake”
点击“Apply”
3.“Kits”
点击“Add”
名称填写:“AArch64 Qt 5.12.9”
Compiler中“C”与“C++”选择上边对应的“AArch64GCC”与“AArch64G++”
Qt Version选择上边对应的“Qt 5.12.9(Qt5.12.9-arm)”
点击“Apply”
最后点击“OK”
ubuntu交叉编译arm版本Qt-完毕

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/heqingchun16/article/details/130519998

智能推荐

L1-023 输出GPLT-程序员宅基地

文章浏览阅读487次,点赞13次,收藏10次。给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。_l1-023 输出gplt

element-ui中el-pagination分页组件,切换每页显示数量时,有时候数据不显示或获取到的数据为空;只想触发size-change事件不触发current-change事件_element-ui 分页展示数据 不全-程序员宅基地

文章浏览阅读1.3w次,点赞9次,收藏20次。element-ui中el-pagination分页组件使用注意事项切换每页显示数量时,有时候数据不显示或获取到的数据为空el-pagination组件只想触发size-change事件不触发current-change事件_element-ui 分页展示数据 不全

嵌入式面试题 C C++ 队列面试题总结-程序员宅基地

文章浏览阅读864次,点赞19次,收藏20次。你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

Android热修复原理热修复框架对比和代码修复-程序员宅基地

文章浏览阅读750次,点赞26次,收藏20次。在Android应用开发中,热修复技术被越来越多的开发者所使用,也出现了很多热修复框架,比如:AndFix、Tinker、Dexposed和Nuwa等等。如果只是会这些热修复框架的使用那意义并不大,我们还需要了解它们的原理,这样不管热修复框架如何变化,只要基本原理不变,我们就可以很快的掌握它们。这一个系列不会对某些热修复框架源码进行解析,而是讲解热修复框架的通用原理。

SpringMVC文件上传功能总结_spring mvc文件上传总结-程序员宅基地

文章浏览阅读174次。Springmvc文件上传功能demo,不多说直接上代码dispatcherServlet-servlet.xml中bean配置<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name=..._spring mvc文件上传总结

Sql优化总结!详细!(2021最新面试必问)-程序员宅基地

文章浏览阅读10w+次,点赞625次,收藏5.8k次。Sql优化基础Sql优化查询SQL尽量不要使用select *,而是具体字段避免在where子句中使用or来连接条件使用varchar代替char尽量使用数值替代字符串类型查询尽量避免返回大量数据使用explain分析你SQL执行计划是否使用了索引及其扫描类型创建name字段的索引优化like语句:字符串怪现象索引不宜太多,一般5个以内索引不适合建在有大量重复数据的字段上where限定查询的数据避免在索引列上使用内置函数避免在where中对字段进行表达式操作避免在where子句中使用!=或<>操_sql优化

随便推点

SM2259XT2量产工具下载方法,SM2259XT2硬盘开卡修复满血复活,SM2259XT2固件,SM2259XT2量产图文教程_sm2258xt量产工具下载-程序员宅基地

文章浏览阅读482次,点赞7次,收藏4次。​我这个固态是SM2259XT2和海力士HY3D-V7的搭配,就得从量产部落找这个组合的量产工具。_sm2258xt量产工具下载

【BSV无限可能】区块链的商业应用_bsv 跨链能力-程序员宅基地

文章浏览阅读491次。2023年2月在斯洛文尼亚的一个专属会场,nChain首席科学家Craig S. Wright博士举办了自己新一期的比特币大师班。比特币大师班课程是月度系列活动,旨在帮助参会者学习比特币的基本原理及其背后的技术知识。_bsv 跨链能力

2019校招前端笔试面试题_javaee为什么前端某个数据状态发生变化只发生在用户本地,不会影响到其他用户-程序员宅基地

文章浏览阅读1.6w次,点赞38次,收藏261次。前期概要:01你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?答案IE:trident内核Firefox:gecko内核Safari:webkit内核Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核Chrome:Blink(基于webkit,Google与Opera Software共同开发)02Javas..._javaee为什么前端某个数据状态发生变化只发生在用户本地,不会影响到其他用户

无线通信中的TD系统(TD-LTE)-程序员宅基地

文章浏览阅读850次。5G中的核心技术_td系统

Linux系统中最佳开源电子邮件服务器_linux邮件服务器有哪些-程序员宅基地

文章浏览阅读1.1k次,点赞27次,收藏20次。以上是Linux系统中备受推荐的开源电子邮件服务器,包括了Postfix、Exim、Dovecot、OpenSMTPD、Mailcow和iRedMail。每种邮件服务器都有其独特的特点和优势,适用于不同的部署场景和需求。希望本文的介绍能够帮助大家选择适合的最佳开源邮件服务器,并建立稳定、安全的邮件系统。更多Python学习内容:ipengtao.com点击下方“阅读原文”查看更多。_linux邮件服务器有哪些

a-select-程序员宅基地

文章浏览阅读712次。a-select支持搜索_a-select

推荐文章

热门文章

相关标签