armlinux 移植qt

这篇具有很好参考价值的文章主要介绍了armlinux 移植qt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 综合篇 点我
2 uboot移植 点我
3 uboot lcd驱动 点我
4 kernel移植 点我
5 kernel lcd驱动 点我
6 摄像头驱动 点我
7 ubuntu base移植 点我
8 挂载网络文件系统 点我
9 qt移植 点我
10 搭建qt交叉编译 点我
11 wifi移植 点我

1、 编译 Tslib

1.1 获取 tslib

本文使用的是tslib-1.21.tar.bz2
将tslib-1.21.tar.bz2解压

sudo tar -jxvf tslib-1.21.tar.bz2

armlinux 移植qt

1.2 配置 tslib

先安装 automake 工具

sudo apt-get install autoconf automake libtool

配置源码生成 Makefile

./autogen.sh

armlinux 移植qt

1.3 配置交叉编译工具

新建一个文件夹,用于存放编译输出的内容,在当前目录下新建,执行下面的指令

mkdir arm-tslib

获取路径
armlinux 移植qt
指定交叉编译工具与输出路径指令为

./configure --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/work/third-party/tslib-1.21/arm-tslib

armlinux 移植qt

1.4 编译与安装

执行make编译

make -j2 //加参数-j2 是最多允许 2 条编译指令同时进行

armlinux 移植qt
编译完成
armlinux 移植qt
执行 make install 指令进行安装

make install

armlinux 移植qt
安装完成
armlinux 移植qt

2 编译Qt源码

2.1 下载Qt源码

路径http://download.qt.io/new_archive/qt/5.5/5.5.1/single/
解压压缩包

tar xf qt-everywhere-opensource-src-5.5.1.tar.xz 

armlinux 移植qt
armlinux 移植qt

2.2 配置编译选项

进入该源码目录下, 首先我们先新建一个编译输出的文件夹,命名为 arm-qt。

mkdir arm-qt

配置编译的选项

gedit autoconfigure.sh
#!/bin/sh
./configure \
	-prefix /home/work/third-party/qt-everywhere-opensource-src-5.5.1/arm-qt \
	-confirm-license \
	-opensource \
	-shared \
	-release \
	-make libs \
	-xplatform linux-arm-gnueabi-g++ \
	-optimized-qmake \
	-pch \
	-qt-sql-sqlite \
	-qt-libjpeg \
	-qt-libpng \
	-qt-zlib \
	-no-opengl \
	-no-sse2 \
	-no-openssl \
	-no-cups \
	-no-glib \
	-no-dbus \
	-no-xcb \
	-no-xcursor -no-xfixes -no-xrandr -no-xrender \
	-no-separate-debug-info \
	-no-fontconfig \
	-nomake examples -nomake tools -nomake tests -no-iconv \
	-tslib \
	-I/home/work/third-party/tslib-1.21/arm-tslib/include \
	-L/home/work/third-party/tslib-1.21/arm-tslib/lib
exit

2.3 指定交叉编译工具及 tslib 的路径

执行下面的指令,编辑 mkspecs/linux-arm-gnueabi-g++下的 qmake.conf。注意: mkspecs 下有很
多平台选择,说明了 Qt 是跨平台的。之所以是选择 linux-arm-gnueabi-g++,这是因为前面
autoconfigure.sh 里的参数-xplatform 选择了 linux-arm-gnueabi-g++。

gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

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

#20220703 song
QT_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=hard


# modifications to g++.conf
QMAKE_CC                = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX               = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK              = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM                = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip

QMAKE_INCDIR += /home/work/third-party/tslib/arm-tslib/include
QMAKE_LIBDIR += /home/work/third-party/tslib/arm-tslib/lib
load(qt_config)

2.4 执行 autoconfigure.sh 配置

先添加可执行权限

chmod +x autoconfigure.sh

执行配置
armlinux 移植qt
qmake 创建完成后,看到下图的“Just run make” ,说明是可以开始编译了,如果你还没有看见
这句话,请再检查路径是否配置正确,编译器路径等是否正确
armlinux 移植qt

2.5 执行 make 编译

在 Qt 源码下执行 make 编译。
armlinux 移植qt

2.6 执行 make install 安装

执行 make install 安装到指定文件夹
armlinux 移植qt
查看安装结果
armlinux 移植qt
查看 qmkae 的版本
armlinux 移植qt

2.7 移植到开发板

2.7.1 移植 tslib 到开发板

将编译好的 arm-tslib 拷贝到不含qt 的文件系统中。

armlinux 移植qt
打开/etc/profile 文件,添加环境变量

export T_ROOT=/opt/tslib
export PATH=$PATH:$T_ROOT/bin 
export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts/

armlinux 移植qt
拷贝完成后,保存退出。 使用 source 指令导出刚刚设置的环境变量。

source /etc/profile

测试 tslib 是否可用, tslib 的工具所在的文件夹在 tslib/bin 下,我们可以利用这些工具来测试我们的触摸屏是否能触摸。
先切换到root
armlinux 移植qt

2.7.2 移植 Qt 到开发板

编译好的 arm-qt 拷贝到不含 qt的文件系统中
armlinux 移植qt
同 tslib 一样,我们要设置 Qt 的环境变量,好让系统知道 Qt 库的位置在哪里!要想 Qt 程序显示中文,请自行将 windows 下的中文字库放到/opt/arm-qt/lib/fonts 这个目录下就可以了。
添加环境变量

vi /etc/profile
export QT_ROOT=/opt/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1:edevmouse:/dev/input/event3
export QT_QPA_FONTDIR=/opt/arm-qt/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms

armlinux 移植qt
拷贝完成后,保存退出。使用 source 指令导出刚刚设置的环境变量。

source /etc/profile

可使用 env 指令查看,设置的环境变量
armlinux 移植qt文章来源地址https://www.toymoban.com/news/detail-401809.html

到了这里,关于armlinux 移植qt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uboot移植网络驱动配置

    开发设备imx6ull miniV2.2版本 在上一章节中我们已经讲解过UBOOT开发移植与LCD分辨率修改,这节我们讲解网络驱动配置,前提是需要电脑与虚拟机互通,我将单独在写一片三端互通的文章。 那么修改网络驱动我们需要先修改网口地址,打开原理图可以看到mini只有一个网口为ENE

    2023年04月17日
    浏览(72)
  • 十三、uboot和kernel移植

    2024年02月13日
    浏览(34)
  • Uboot、Linux BSP定制,最小系统移植

    目录 一、linux操作系统支持哪些处理器 二、linux支持哪些版本 三、linux支持哪些外设IP 四、 现有操作系统举例 五、 uboot下支持的外设 目前已经linux SOC有Cortex-A5x2 Cortex-A9x4,Cortex-A53x4,Riscv-v 已经支持的linux版本有:4.14.158, 5.4.179,5.4.0 UART串口打印 支持,并且支持多路串口,快

    2023年04月22日
    浏览(54)
  • Rockchip RK3399 - 移植uboot 2023.04

    ---------------------------------------------------------------------------------------------------------------------------- 开发板   :NanoPC-T4开发板 eMMC   :16GB LPDDR3:4GB 显示屏   :15.6 HDMI接口显示屏 u-boot    :2023.04 linux      :6.3 -----------------------------------------------------------------------------------

    2024年02月06日
    浏览(49)
  • Rockchip RK3399 - 移植uboot 2023.04和内核FIT uImage制作

    ---------------------------------------------------------------------------------------------------------------------------- 开发板   :NanoPC-T4开发板 eMMC   :16GB LPDDR3:4GB 显示屏   :15.6 HDMI接口显示屏 u-boot    :2023.04 linux      :6.3 -----------------------------------------------------------------------------------

    2024年02月06日
    浏览(45)
  • 基于RK3588的嵌入式linux系统开发(二)——uboot源码移植及编译

            由于官方的SDK占用空间较大(大约20GB左右),需要联系相关供应商提供,且官方的SDK通过各种脚本文件进行集成编译,难以理解系统开发的详细过程。本章介绍直接从官方Github网站下载源码进行移植,进行uboot移植及编译,具体内容如下所述: 1.进入官方的github网

    2024年01月16日
    浏览(61)
  • imx8的源码开发方式非yocto方式(二)——基于imx8的uboot源码移植经验

    先从NXP官方的github源码库中下载各个版本的u-boot, uboot的下载地址为: GitHub - nxp-imx/uboot-imx: i.MX U-Boot 图1 选择uboot版本 1.本文下载最新的uboot版本(lf-5.15.71-2.2.0)的tar.gz的压缩包。 图2 拷贝、解压uboot源码到工作目录 2.拷贝uboot源码到ubuntu工作目录,并解压uboot压缩包,流程如

    2024年02月02日
    浏览(42)
  • 安卓玩机搞机----移植第三方rom修复 第三方GSI系统修复bug综合解析【一】

    很多朋友热衷与刷写第三方非当前机型官方系统的rom。和刷写第三方gsi等等。例如 米系列机型刷写Flyme 一加机型刷写miui oppo刷写gsi等等。 很多友友也会尝试自己移植第三方rom。但此类操作最大的问题在于修复可以开机后的bug,今天的教程综合说明下这类修复思路。资源步骤

    2024年02月07日
    浏览(87)
  • 为什么需要uboot?

    bootROM: 一种固化在芯片内部的只读存储器(ROM),用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码,用于完成系统启动前的基本初始化和配置, 例如初始化时钟、GPIO控制器、中断控制器、存储设备(SD卡、NAND Flash、SPicy Flash)等硬件资源, 检测启动设备

    2023年04月23日
    浏览(63)
  • Uboot功能

    Uboot(Universal bootloader) 就是一个裸机程序,用于启动内核。不过相较于单片机程序更加复杂 Uboot:Universal bootloader XIP : CPU 可以直接发出地址信号读取 Flash/RAM ,执行指令(可以看成直接在 Flash/RAM 中运行);此类 Flash/RAM 称为 XIP 设备 非 XIP :有时程序从 SD 卡启动, CPU 无法直接

    2024年03月20日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包