zynq qt 交叉编译

1 环境:ubuntu 23.4,vitis/vivado 2022.2 ;petalinux 2023.2

2,配置qt

Xilinx 官方是自带有qt的,petalinux-config -c rootfs 这一步里面有配置qt ,但是实际操作下来,总是报错。

综合考虑之后选择从qt官网下载文件进行交叉编译。参考xilinx 官方的方式以及其他类似arm 版。xilinx 官方说明链接如下:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842110/Qt+Qwt+Build+Instructions+Qt+5.4.2+Qwt+6.1.2

从qt官方下载的是qt-everywhere-opensource-src-5.15.4.tar.xz。选择5.15.4版本是因为petalinux 生成的根文件系统所带的qt是这个版本,qt6担心不配合。

下载tslib。因为可能需要开发触摸屏,需要点击则要这个开源的触摸库tslib。

交叉编译tslib 见https://www.codeleading.com/article/60885687722/

交叉编译

qt-everywhere-opensource-src-5.15.4.tar.xz 解压后进入qtbase/mkspecs 文件夹,新建arm-linux-gnueabihf-g++ 文件夹。

新建qmake.conf 文件,编译器gcc,g++ 的路径都是绝对路径:

qmake configuration for building with arm-xilinx-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)

modifications to g++.conf

QMAKE_CC = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc

QMAKE_CXX = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++

QMAKE_LINK = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++

QMAKE_LINK_SHLIB = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++

modifications to linux.conf

QMAKE_AR = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ar cqs

QMAKE_OBJCOPY = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-objcopy

QMAKE_NM = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-nm -P

QMAKE_STRIP = /tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-strip

load(qt_config)

复制官方qplatformdefs.h文件,没有改。。

编译过程参照QT 官方的说明,以及下文:

++https://blog.csdn.net/DreamerPerple/article/details/138016216++。

Qt 编译脚本如下:其中 -prefix 选项是生成路径,-xplatform是编译平台

#!/bin/bash

./configure -prefix /home/xxx/Desktop/zynqqt/qt_install \

-xplatform arm-linux-gnueabihf-g++ \

-opensource \

-confirm-license \

-release \

-strip \

-shared \

-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 \

-skip qtdeclarative \

-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 \

--libpng=qt \

--libjpeg=qt \

--sqlite=qt \

-tslib \

-plugin-sql-sqlite \

-I /home/mac-ding/Desktop/zynqqt/tslib/arm_tslib/include \

-L /home/mac-ding/Desktop/zynqqt/tslib/arm_tslib/lib \

-recheck-all

6,完成。后续放入linux 内即可

相关推荐
沐晓时光8 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
David猪大卫14 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
fengci.15 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_67817 小时前
JavaEE通关手册:初识Java
java·开发语言
慧都产品智能化17 小时前
Qt 表格升级攻略:复用已有编辑器,减少重复开发
c++·qt·编辑器·qt6.3
ShineWinsu18 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu19 小时前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
吴名氏.19 小时前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
瑞雪兆丰年兮20 小时前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
Elastic 中国社区官方博客20 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎