Zedboard移植QT
来源:互联网 发布:263网络通信 编辑:程序博客网 时间:2024/06/05 16:01
参照《嵌入式系统软硬件协同设计实战指南》这本书第十四章 系统级设计案例的14.2.7节 在ZedBoard上运行QT程序。
一、关于QT在PC Ubuntu上的安装与使用
一个简单的例子可以参照 懒兔子 ZedBoard学习手记(八) 更大的目标!在Linux下开发图形用户界面,建立一个简单的工程,编译后生成的可执行文件效果如下图:
工程文件夹下的源文件如下:
作为Zedboard移植的测试工程
二、Zedboard移植QT
最好的参考是官方文档,本文仅仅进行一些补充说明。
在进行QT移植配置之前,要确保交叉编译环境已经配置好;获取su权限;
1. 配置环境变量:
对/etc/bash.bashrc
文件进行修改,添加qt编译的环境变量:
export ZYNQ_QT_BUILD=/home/linux/Zynq_qt_buildexport ZYNQ_QT_INSTALL=/home/linux/Zynq_qt_build/installexport PATH=$ZYNQ_QT_INSTALL/bin:$PATH
其中/home/linux/Zynq_qt_build/install
为QT的安装目录。
注意:为了移植的方便,此处的安装目录尽量简单
2. 相关文件准备:
下载Xilinx提供的Qt Lib源码包和相关的配置文件版本为4.7,下载地址将qt_build_src.tar
放在/home/linux/Zynq_qt_build
目录下,进行解压:
cp /path/to/download/qt_build_src.tar /home/linux/Zynq_qt_build/qt_build_src.tartar xvf qt_build_src.tar
解压后可以得到几个文件,其中qt-everywhere-opensource-src-4.7.3.tar.gz
和qmake.conf
是Zedboard移植QT配置时所需要的文件;
解压qt-everywhere-opensource-src-4.7.3.tar.gz
:
cd $ZYNQ_QT_BUILDtar xzfv qt-everywhere-opensource-src-4.7.3.tar.gzcd qt-everywhere-opensource-src-4.7.3.tar.gz
3. 工具链配置
需要配置文件对qmake依赖的工具链进行指定,为生成Makefile做准备,使用官网提供的qmake_4.7.3.conf文件即可,把它复制到mkspecs/qws/linux-arm-gnueabi-g++/
文件夹下:
cp /path/to/downloaded/qmake_4.7.3.conf mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
4. Makefile文件配置
配置QT生成Makefile文件,使用配置文件和指定的工具链:
./configure \-embedded arm \-xplatform qws/linux-arm-gnueabi-g++ \-little-endian \-opensource \-host-little-endian \-confirm-license \-nomake demos \-nomake examples \-prefix $ZYNQ_QT_INSTALL
官方文档对于一些参数进行的解释:
-xplatform <mkspec files to use> 指定环境的目标平台进行交叉编译使用的mkspec文件-embedded <target CPU architecture> 目标平台的CPU架构-prefix <path> 交叉编译QT的安装路径-confirm-license 在配置过程中,可以节省同意许可协议的懒惰选项(本句直译)
5. 生成和安装:
makemake install
6. 制作镜像文件
制作Zedboard可挂载的QT运行库镜像;
将Xilinx交叉编译器中的基础C++库复制到QT的安装目录下:
cp -P /path/to/cross/compiler/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* $ZYNQ_QT_INSTALL/lib
制作qt_lib.img镜像:
cd $ZYNQ_QT_BUILDdd if=/dev/zero of=qt_lib.img bs=1M count=80mkfs.ext2 -F qt_lib.imgchmod go+w qt_lib.imgmount qt_lib.img -o loop /mntcp -rf $ZYNQ_QT_INSTALL/* /mntchmod go-w qt_lib.imgumount /mnt
至此,qt_lib.img镜像已经生成了
7. Zedboard移植QT工程交叉编译
将之前QT的测试工程文件夹helloworld**复制**一份,据说交叉编译以后原来的工程就无法在PC上打开了。在工程所在的文件夹下,进行交叉编译:
qmake -projectqmakemake
成功编译后会生成与文件夹同名的可执行文件helloworld,交叉编译后的工程文件夹内容如下:
8. Zedboard移植QT测试
将可执行文件helloworld
,QT运行库镜像qt_lib.img
拷贝到SD卡中,运行Zedboard开发板,挂载qt_lib.img
镜像。
注意:镜像的挂载目录应该与PC机上QT的安装目录一致。本文中,PC机上QT的安装目录为/home/linux/Zynq_qt_build/install
,在Zedboard板系统上建立相同路径的目录作为挂载目录:
mount /dev/sda1 /mntmount /mnt/qt_lib.img /home/linux/Zynq_qt_build/install
这样一来,就可以运行QT程序了。-qws
指令用于建立一个运行QT软件必须的QWS Server,这是由QT的机制决定,软件会从挂载目录自动调用QT运行库,运行命令如下:
/mnt/helloworld -qws
运行效果如下图:
通过HDMI连接显示器后,显示效果如图:
可通过USB Hub连接鼠标进行操作,窗口关闭则QT程序结束运行。
- Zedboard移植QT
- 移植QT到ZedBoard(制作运行库镜像) 交叉编译
- zedboard QT移植到开发板问题寻求帮助
- zedboard OPENCV移植
- 移植libusb到zedboard
- ZedBoard上移植OpenCV
- projectne10向ZedBoard移植
- Zedboard Linux移植笔记
- Zedboard学习(八):zedboard移植opencv
- zedboard-----------tesseract移植全过程记录
- zedboard--嵌入式linux系统移植
- zedboard--嵌入式linux系统移植
- zedboard上移植OPENCV库
- 在zedboard上移植opencv
- zedboard 嵌入式linux系统移植
- zedboard 无线网卡移植问题
- Nginx在zedboard中的移植
- Zedboard安装与移植OpenCV
- #pragma once 和 #ifndef 的区别
- php常用函数之-字符串函数
- 瀑布流照片实现
- 【ionic】项目应用requireJs前端模块化
- Excel VLOOKUP
- Zedboard移植QT
- 343. Integer Break
- 关于子函数中用new的问题
- 重写、覆盖、重载、多态的区别的分析
- jquery param 数组 带有 %5B%5D [] 问题
- java中的matches()方法
- tensorflow常用函数记录
- Tesorflow学习笔记(1)
- Tensorflow学习笔记(2)