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 内即可

相关推荐
weixin_4407305029 分钟前
字符编码笔记-utf-8 、unicode、gbk,ascii编码格式
开发语言·笔记
励志不掉头发的内向程序员1 小时前
【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View
开发语言·c++·qt·学习·系统架构
PHP实战开发录2 小时前
PHP接口大整数为什么变了
开发语言·php
临床数据科学和人工智能兴趣组5 小时前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
andyweike8 小时前
php笔记
开发语言·笔记·php
Circ.9 小时前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
现任明教教主~11 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
Zhou14113611 小时前
SpringSecurity_02_授权与高级功能
开发语言·python
码匠许师傅12 小时前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http