首页 > 其他分享 >Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程

Yuzuki Lizard 全志V851S开发板 –移植 QT5.12.9教程

时间:2023-04-26 10:32:44浏览次数:48  
标签:qt no make 全志 dev 开发板 root arm QT5.12

移植 QT5 教程 (此教程基于docker版V851S开发环境)

docker pull registry.cn-hangzhou.aliyuncs.com/gloomyghost/yuzukilizard

编译依赖

apt-get install repo git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools \
parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev \
autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash \
patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev \
openssh-client lib32stdc++6 gcc-aarch64-linux-gnu libncurses5-dev lzop libssl1.0.0 libssl-dev \
libglade2-dev cvs mercurial subversion asciidoc w3m dblatex graphviz python-matplotlib \
libc6:i386 texinfo liblz4-tool genext2fs expect autoconf intltool libqt4-dev libgtk2.0-dev

安装第一遍会有报错,部分无法执行。在执行一遍,就可以了。

1.建议新建一个docker避免环境污染的问题。

2.打开下面目录

/root/tina-v853-docker/platform/thirdparty/gui/qt/

并解压

tar -xvf qt-5.12.9.tar.xz

在这里插入图片描述

3.导入编译工具链

3.1 新建tool文件夹

mkdir /root/tool

3.2 将toolchain.tar解压到tool文件夹下面

cd /root/tool/
tar -xvf toolchain.tar

在这里插入图片描述

4.source 编译工具链

4.1 修改profile

vi /etc/profile

增加一行代码

export PATH=$PATH:/root/tool/toolchain/bin

4.2 增加环境变量

nano /root/.bashrc

增加二行代码

export PATH=$PATH:/root/tool/toolchain/bin
export STAGING_DIR=$STAGING_DIR:/root/tool/toolchain/bin

5.qt解压完成后,进入文件夹

cd /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/

在当前文件夹里面创建一个.sh文件 执行

touch make.sh
chmod 777 make.sh
nano make.sh

复制粘贴下面内容到文件里面

#!/bin/sh
PWD=`pwd`
    mkdir arm-qt
    ./configure \
    -prefix $PWD/arm-qt \
    -release \
    -opensource \
    -shared \
    -xplatform linux-arm-gnueabi-g++ \
    -optimized-qmake \
    -pch \
    -qt-sqlite \
    -qt-libjpeg \
    -qt-libpng \
    -qt-zlib \
    -no-opengl \
    -skip qt3d \
    -skip qtcanvas3d \
    -skip qtpurchasing \
    -skip qtlocation \
    -skip qttools \
    -no-sse2 \
    -no-openssl \
    -no-cups \
    -no-glib \
    -no-dbus \
    -no-xcb \
    -no-iconv \
    -no-separate-debug-info \
    -no-fontconfig \
    -recheck-all \
    -make examples

    make -j16 
    make install

这里面比较复杂,里面开启和关闭部分项目是为了保证编译可以成功。

如果需要编译复杂的QT可以自己测试。

6.将工具链改为自己的

执行:

nano /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/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)

CROSS_COMPILE=arm-openwrt-linux

# modifications to g++.conf
QMAKE_CC                = $${CROSS_COMPILE}-gcc
QMAKE_CXX               = $${CROSS_COMPILE}-g++
QMAKE_LINK              = $${CROSS_COMPILE}-g++
QMAKE_LINK_SHLIB        = $${CROSS_COMPILE}-g++

# modifications to linux.conf
QMAKE_AR                = $${CROSS_COMPILE}-ar cqs
QMAKE_OBJCOPY           = $${CROSS_COMPILE}-objcopy
QMAKE_NM                = $${CROSS_COMPILE}-nm -P
QMAKE_STRIP             = $${CROSS_COMPILE}-strip
load(qt_config)

7.编译QT5

执行:

cd /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/

执行:

./make.sh

8.安装

如果没有报错,就编译完成了。

make install

9.下载build文件

执行:

tar -cvf arm-qt.tar arm-qt

压缩包压缩好,就可以通过ftp下载下来了。

10.编译qtdemo

10.1 编译qtdemo 创建一个文件夹helloworld,然后再文件夹里面创建一个文件 main.cpp

#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QSlider>
#include <QHBoxLayout>
 
int main(int argc, char **argv)
{
 QApplication app(argc, argv);
 QWidget *window  = new QWidget;
 window->setWindowTitle("I am a slider");
 
 QLabel *label = new QLabel;  // QLabel控件,用于显示数字
 QSlider *slider = new QSlider(Qt::Horizontal);  // 滑动条
 slider->setRange(0, 100);
 
 QObject::connect(slider, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
 slider->setValue(50);
 
 QHBoxLayout *layout = new QHBoxLayout; //level 
 layout->addWidget(label);
 layout->addWidget(slider);
 window->setLayout(layout);
 
 window->resize(400, 240);
 
 window->show();
 
 return app.exec();
}

10.2 编译 执行:

/root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin/qmake -project

执行:

/root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin/qmake

执行:

make

此时会提示报错:修改.pro结尾的文件,末尾增加一行代码。

参考这个代码

######################################################################
# Automatically generated by qmake (3.1) Sun Apr 2 23:32:59 2023
######################################################################

TEMPLATE = app
TARGET = helloworld
INCLUDEPATH += .

# The following define makes your compiler warn you if you use any
# feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

# Input
SOURCES += hello.cpp



greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

并重新执行一遍

10.3 下载可执行文件 helloworld

11.导入

/root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin

下面的两个文件夹到板子上,其余的不用

复制bin下面的lib 到usr/lib 并根据报错相应的修改文件名 复制bin下面的plugin到usr目录下面 复制刚才的可执行文件helloworld 到/mnt

12.进入板子/mnt

添加权限 chmod 777 helloworld 执行

./helloworld

13.此时会报错,要修改文件名

凡是涉及到5.12.9.so的文件名,全部要改成5.so 否则会报错 (如何快速改文件名呢?) 其中包含名字为core,gui,widget的,一定要改

标签:qt,no,make,全志,dev,开发板,root,arm,QT5.12
From: https://blog.51cto.com/u_15380233/6226524

相关文章

  • 瑞芯微RK3568开发板发布邮票孔开发板
    瑞芯微RK3568开发板发布邮票孔开发板iTOP-3568邮票孔开发板采用瑞芯微RK3568处理器,22nm工艺制程,集成4核A55架构处理器和MaliG522EE图形处理器,支持4K解码和1080P编码,内置独立的NPU,可用于轻量级人工智能应用,开发板采购底板+核心板的方式,两种连接方式,多种核心板邮票孔连接方......
  • 全志v851s 的uart3 设置成普通串口收发
    本文转载自:https://bbs.aw-ol.com/topic/3281/由于UART0被设定为系统dubug输出(简单来说就是将ttyS0设定为console),所以使用UART3作为普通的串口,进行与别的设备通信。1.查看硬件电路图SCH_Schematic1_2022-11-23,查看uart3的TXRXpin脚电路图pdf路径:Yuzukilizard/Hardware/......
  • Qt5.12实战之图形编程初识
    演示效果: 1.绘制条件:1.绘图设备-> QPainter2.画笔->QPen --->字体(QFont)3.画刷->QBrush-->自己定义画刷(QPixmap)4.绘制事件->QPaintEvent绘图步骤:1.重写基类的虚函数 voidpaintEvent(QPaintEvent*event); 2.在虚函数 voidpaintEvent(QPaintEvent*event)的实现函......
  • 全志SDK - 3. 系统配置(2)
    全志SDK-1.系统编译全志SDK-2.PC与开发板连接方式全志SDK-3.系统配置(1)全志SDK-3.系统配置(2)1.GPIOpin脚计算规则:引脚编号=控制引脚的寄存器基数+控制引脚寄存器位数如:GPIO_E2(即PE02)=(‘E’-’A’)*32+2=1301)系统支持makekernel_menuconfigDevic......
  • 全志v851s使用GPIO应用程序编写
    1.查看硬件电路图SCH_Schematic1_2022-11-23,查找合适的gpio作为使用pin在这里我们选取GPIOH14(注意目前开发使用这个pin作为触摸屏的pin脚,需要将触摸屏connect断开),因为可以通过排插使用杜邦线将其引出,用于连接别的设备。电路图pdf路径:Yuzukilizard/Hardware/Schematic/SCH_......
  • 全志SDK - 3. 系统配置(1)
    1.应用程序放置自己的应用程序,一般有两种放置方式:源码&编译过后的二进制文件(推荐)1.1源码放置源码放置位置一般为:package/allwinner/[app-name]源码是以工程的形式进行放置,所以必须配上makefile和Kconfig等,具体的可以参考该目录下的其他工程,修改一下即可,很简单的!一般......
  • 几款主流的Python开发板对比
    几款主流的Python开发板对比下面正式进入我们的主题。随着Python语言的日渐普及和大众化,一些专门用于Python语言的微控制器的板子已经呈现到公众面前。在单片机上可以跑的Python又称MicroPython,MicroPython是Python3编程语言的一个简洁和快速实现,专门优化运行于一个微控制器上......
  • iTOP4412开发板Qt程序打包和部署
    因为我们要把写好的程序发给用户来用,写好的源码也不方便给别人看,所以要把程序进行打包部署。步骤一:点击左下角的电脑图标将Debug模式切换到Release模式。release模式:发布版本,不对源代码进行调试,基本没有调试信息。debug模式:调试版本,有很多调试信息。步骤二:找到release模式......
  • Air724UG开发板串口教程
    1、前言这块板子是毕业设计老师替选的,出自合宙。使用Lua5.1,包含部分外部lib包。缺点:官方宣传的Luat合宙全系列通用,在Air724ug上是无法使用的该开发板使用Lua5.1,缺少了较多常用的Api,需要外部lib补充,往往也很难查询开发板型号多种多样,官方教程使用开发板往往和你的不同......
  • 全志SDK - 2. PC与开发板连接方式
    为了方便对程序调试,我们需要将开发板与PC进行连接,连接方式主要有两种:有线连接:串口、ADB等无线连接:wifi、蓝牙1.有线连接有线连接最常用的是串口和adb,都是非常的方便,唯一的不足是开发板移动距离较小,且需要额外连线!1.1串口使用串口可非常方便的对板子进行各种操作,但是需......