qt移植到imx6ull运行(qt部署到imx6ull)

这个事情对于小白来说确实不是很友好,会经常出现错误,我弄了两天终于弄好了

我主要参考了https://blog.csdn.net/m0_61738650/article/details/131269561

                     https://blog.csdn.net/m0_61738650/article/details/131171914这两个教程

我现在来简述一下流程以及我在后续遇到的一些问题:

 1.完成tslib源码编译

首先下载tslib库源码Tags · libts/tslib · GitHub,将源码传入Ubuntu

或者你可以直接在Ubuntu下载,然后解压:

tar xvf 压缩包

安装需要的配件

sudo apt-get install autoconf 
sudo apt-get install automake 
sudo apt-get install libtool 
./configure --host=arm-linux-gnueabihf(工具链) ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=放置tslib的地方(我的是/home/book/qtstudy/tslib-arm)
make
make install

使用configure进行配置,然后make,makeinstall,这里host指定工具链,然后在你指定的路径会生成bin etc include lib share五个文件夹,这里就成功了

2.下载并编译qt源码

        qt安装包和qt的源码下载是非常非常慢的,这里我推荐离线安装,因为我使用镜像安装总是提示我缺少某某文件。

网站:Index of /archive/qt/5.15/5.15.2/single

这里qt-everywhere-src-5.15.2.tar.xz是我们需要下载的,我们使用迅雷下载会比较快,我们右键点击需要下载的文件,复制链接,然后打开迅雷在搜索框中粘贴连接,如果弹出下载框即代表可以下载。

再解压

tar -xvf qt-everywhere-src-5.15.2.tar.xz 

修改qt-everywhere-src-5.15.2文件下qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf将其修改为如下内容:

其中arm-linux-gnueabihf-gcc arm-linux-gnueabihf-g++是编译工具链,使用之前先查看有没有,在终端输入arm-linux然后按tab补齐看有没有,没的话需要安装

#
# qmake configuration for building with arm-linux-gnueabi-g++
#MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hardinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip
load(qt_config)

下面我们需要对configure文件进行配置,输入./configure -help可以看到我们需要配置的项,tslib需要配置的很少因此我们可以直接在后面输入配置内容,但是这个需要配置的很多,因此我们写了一个脚本文件来配置

我们在qt-everywhere-src-5.15.2文件夹下创建并写入vim autoconfigure.sh

其中第一行是输出配置文件的路径

倒数第二行和倒数第三行分别为我们刚才编译生成tslib的lib 和include文件夹

./configure -prefix /home/book/qtstudy/qt-everywhere-src-5.15.2/arm-qt \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/home/book/qtstudy/tslib-arm/include \
-L/home/book/qtstudy/tslib-arm/lib \
-recheck-all

下面我们需要把文件设置为可执行文件,并运行

chmod +x autoconfigure.sh
./autoconfigure.sh 

这时候我们就等配置完成即可

我在配置的时候遇到的问题:

        tslib问题,大概意思就是tslib已生成但是有什么什么错误来着

        最后的解决方法就是重新按照上述流程编译tslib,之前有编译过的也重新编译一下

后面分别执行make makeinstall即可(同理出问题的话可以make distclean可以删除make文件生成东西和configure配置的东西,重新来即可,当然也可以直接把这个文件夹删掉重新解压缩)

3.安装linux中的qt

        和上述配置qt源码一样,我们只需要复制qt下载链接后去迅雷下载就会很快

        同理使用chmod将qt文件设置为可执行文件,并运行(我下载的是qt-opensource-linux-x64-5.12.8.run,下载链接在Index of /archive/qt/5.12/5.12.8),安装的时候如果断网可以跳过登录,当然如果你注册了qt账号(免费注册很简单)可以联网安装,只需要登录一下qt账户,下面安装时候我只添加选择了desktop gcc -64也就是第一个选项,这个和gcc编译器相关,其他的可以都不添加选择。

chmod +x qt下载文件
./qt下载文件

安装成功后在启动qt'软件在上面tools options中进行配置,选择kits,对debuggers进行添加,我的路径如下(如果是百问网的imx6ull应该是一样的)manual里面两个都一样只是起了不一样的名字,配置一个即可

QT versions中add,选择我们刚才配置文件configure选择的输出文件夹里面的qmake

最后我们add一个kit,将配置项选为我们刚才配置的选项

编译器直接选择自动的这个arm 32bit,但是我在上述教程中看到的编译器配置的是debuggers一样的工具链,但是这样做我会报错(某个库的形式错误),我不知道为什么,但是确实使用这个自动的编译器就可以用。

保存,下面去项目中:取消勾选默认的kit的shadow build,然后选择我们自己的kit

选择我们的kit进行运行(需要打开板子)

4.配置字体

上述如果成功的话你会发现板子上任何文字都不会显示,是因为我们没用设置字库文件,我们需要去设置环境变量告诉板子我们用的是那个字库,这时候我们制定了字体文件夹,我们只需要任意去网上下载一个ttf'文件放在这个文件夹内即可,(一定要是这个文件夹里面)

export QT_QPA_FONTDIR=/usr/share/fonts

最后我们就可以成功运行

有任何问题欢迎评论区交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目】Boost搜索引擎

项目相关背景 现在市面上已经出现很多搜索引擎,比如:百度、Google、Bing等等,它们都是全网性搜索 而我做得项目就像cplusplus网站中搜索C的相关知识一样,同样做的是站内搜索,它的搜索更垂直。 搜索引擎的宏观原理 ser…

Linux本地部署Nightingale夜莺监控并实现远程访问提高运维效率

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

视频剪辑的技巧:掌握如何高效批量调整视频尺寸的方法

在视频剪辑的过程中,调整视频尺寸是一个常见的需求。无论是为了适应不同平台的播放要求,还是为了统一多个视频的尺寸以提升观看体验,掌握高效批量调整视频尺寸的技巧都显得尤为重要。本文将为您详细介绍云炫AI智剪如何高效地进行这一操作&…

通往糊涂之路 The road to serfdom

最近被推送了一本书,哈耶克的............ 试一试,看看能不能看懂,也许是通往糊涂之路。

Windows Qt中支持heic 图片显示

安装vcpkg: git clone https://github.com/microsoft/vcpkg 执行脚本: .\vcpkg\bootstrap-vcpkg.bat 在安装之前如果需要指定vs的编译器, 在如下文件中做更改, 我指定的是用vs2019编译的: D:\vcpkg\vcpkg\triplets 增…

谈 postman自动化接口测试

背景描述 有一个项目要使用postman进行接口测试,接口所需参数有: appid: 应用标识; sign:请求签名,需要使用HMACSHA1加密算法计算,签名串是:{appid}u r l {url}url{stamp}; stam…

AlphaFold3—转录因子预测(实操)

写在前面 我们上一次已经介绍了如何使用AlphaFold3:最新AlphaFold 3:预测所有生物分子结构、相互作用 AlphaFold3可以做什么? 1.AlphaFold服务器可以对以下生物分子类型进行建模,评价其相互结合: 蛋白质 DNA RNA 生…

课题组里有一个卷王是什么体验?

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

SpringBoot项目配置HTTPS接口的安全访问

参考:https://blog.csdn.net/weixin_45355769/article/details/131727935 安装好openssl后, 创建 D:\certificate CA文件夹下包含: index.txt OpenSSL在创建自签证书时会向该文件里写下索引database.txt OpenSSL会模拟数据库将一些敏感信息…

光伏EPC管理软件都有哪些功能和作用?

光伏EPC管理软件是用于光伏工程项目管理的综合性工具,它涵盖了从项目策划、设计、采购、施工到运维的各个环节。 1、项目总览 管理所有项目计划,包括项目类型、项目容量等。 调整和优化项目计划,以应对不可预见的情况。 2、施工管理 制定…

中学生政史地杂志中学生政史地杂志社中学生政史地编辑部2024年第3期目录

每月时政 时政要闻(2024年2月) 李伟; 3-12 热点聚焦 关注2024年全国两会 汤健云; 13-15 积极应对老龄化,发展银发经济 王吉兴; 16-18《中学生政史地》投稿:cn7kantougao163.com “一带一路”助力柬埔寨经济发展 李…

上海计算机学会2022年5月月赛C++丙组T3打印金字塔

题目描述 给定一个整数 n,请打印一个具有 n 层结构的三角形金字塔,例如当 n3 时,打印如下图形: /\ /__\/\ /\/__\/__\/\ /\ /\ /__\/__\/__\输入格式 单个整数:表示 n。 输出格式 根据题意输出层次为 n 的三角形…

迅睿CMS中实现关键词搜索高亮

在迅睿CMS系统中实现关键词搜索高亮是提升用户体验和搜索效果的重要手段。当用户搜索某个关键词时,将搜索结果中的关键词高亮显示,可以帮助用户更快速地定位到所需信息。 关键词高亮的实现 在迅睿CMS中,你可以使用内置的dr_keyword_highlig…

【其他学习参考文档记录】

交叉编译学习参考 nodejs 交叉编译-cliff工作室

2024年淘宝天猫618超级红包领取口令活动时间是从什么时候开始到几月几号结束?

2024年淘宝天猫618活动,将于2024年5月19日开始,今年618淘宝天猫取消了预售环节。同时,618淘宝天猫也提供了多项优惠活动:超级红包、跨店满减、官方立减、全程价保及草柴APP领优惠券拿购物返利等多重优惠活动。 2024年淘宝天猫618…

自媒体从0-1起号全流程落地指南。(含工具)

下面开始进入主题: 一、持续涨粉的技巧 持续账号的账号通常是具备以下的几种特征 ①利他性:利他性的核心在于你向用户提供了什么? 可以透过逆向思维来体现,首先要明确目标人群及其需求,然后根据这些需求提供必要的…

HarmonyOS开发案例:【UIAbility内和UIAbility间页面的跳转】

UIAbility内和UIAbility间页面的跳转(ArkTS) 介绍 基于Stage模型下的UIAbility开发,实现UIAbility内和UIAbility间页面的跳转。包含如下功能: UIAbility内页面的跳转。跳转到指定UIAbility的首页。跳转到指定UIAbility的指定页…

C语言学习(十)结构体

目录 一、结构体类型定义二、结构体变量的定义三、结构体变量赋值1. 定义结构体变量的同时进行赋值2. 定义结构体类型的同时定义变量并进行赋值3. 在定义结构体变量时对指定成员进行赋值4. 在定义完结构体变量后,通过.进行赋值 四、结构体成员访问五、结构体内部指针…

MYSQL:MySQL 事务隔离级别详解

一、MySQL事务是什么? MySQL事务是一组在数据库中执行的操作,这些操作要么全部成功执行,要么全部不执行,以确保数据库的完整性和一致性。 事务的 ACID 事务具有四个特征:原子性( Atomicity )、…

用Robotframework+selenium 进行webui页面自动化测试

Robotframework其实就是一个自动化的框架,想要进行什么样的自动化测试,就需要在这框架上添加相应的库文件,而用于webui页面自动化测试的就是selenium库. ​ 关于robotframework框架的搭建我这里就不说了,今天就给大家根据一个登录…