qt部署1

第一步首先进入/opt/petalinux/2018.3(这里是petalinux的安装目录)
然后输入命令行 source environment-setup-cortexa9hf-neon-xilinx-linux-gnueabi配置好交叉编译环境,然后在进入/home/zynq/Qt5.9.6/Tools/QtCreator/bin启动qt,即运行qtcreator.sh脚本
再使用zynq_kid组织新建文件,这里面包括gcc,g++和gdb,debuger的配置(之前配置好直接用即可),然后就是编写代码,编写好后直接构建,没有报错在代码文件夹下可以看到可执行文件。
然后就是编译进板子,实现进入/opt/pkg/petalinux/2018.3/components/yocto/source/arm/layers/meta-qt5/recipes-qt/qt5
这里是petalinux的安装目录,这里面有一个文件,qtbase_git.bb需要对此追加定义(参考正点原子文档)
在家目录下的petalinux新建一个petalinux工程:petalinux-create -t project -n ALIENTEK-ZYNQ --template zynq,-n可以自己选择名字,
然后就是进入到你创建的petalinux工程目录下导入hdf文件,这个hdf在工程目录上一级中有
cd xxx-ZYNQ //进入到 petalinux 工程目录下
petalinux-config --get-hw-description …/hdf/Phosphor_7010.sdk/ //导入 hdf 文件,搭建完成进入配置页面直接保存即可不需要更改。
然后配置根文件系统:petalinux-config -c rootfs,安装正点原子的文档配置好之后保持退出,构造根文件系统:petalinux-build -c rootfs,
编译好的根文件系统就存在对应的petalinux工程文件夹的 images/linux 目录下。
之后就是配置启动卡,具体方法参考正点原子的文档,tar.gz 压缩格式的根文件系统 rootfs.tar.gz 以及 tar.bz 压缩格式的根文件系统 rootfs.tar.bz,使用哪个都可以。
同时进入系统后需要配置qt运行的环境,在根目录下输入下列命令:

export QT_QPA_PLATFORM=linuxfb
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1

export QT_QPA_PLATFORM=linuxfb
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
在这里插入图片描述
ps:这上面是使用的petalinux自带的qt源码运行,主要是看qt环境是否搭建完成,如果需要具体应用则需要对qt源码进行交叉编译,包括链接库等(而且只需要更改根文件其他不需要变,这里使用的petalinux生成根文件,而i.mu6x使用的是busbox更petalinux类似都是界面配置根文件系统然后生成)。具体可看下面:
**tslib交叉编译:**将tslib解压以后在解压目录中打开命令行,先配置petalinux的setting.sh文件,这个根据自己的安装目录填写脚本路径信息,/opt/pkg/petalinux/2018.3
source /opt/pkg/petalinux/2018.3/settings.sh
./autogen.sh //运行 autogen.sh
./configure --prefix=/home/zynq/tools/tslib-1.21/install
–host=arm-linux-gnueabihf
CC=arm-linux-gnueabihf-gcc
//执行配置命令第三到第五段是一起的
配置完成后进行编译和安装:
make -j16
make install
之后就会在该目录下生成install文件夹里面就包含 bin、etc、include、lib、share 这五个文件夹,bin 目录下存放了一些 tslib 提供的测试工具,etc 目录下存放了 tslib 相关的配置文件,include 目录下存放了 tslib 相关头文件。
QT交叉编译:
按照正点原子对qtbase/mkspecs/linux-arm-gnueabig++/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)
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS += -O2 -mcpu=cortex-a9
QMAKE_CXXFLAGS += -O2 -mcpu=cortex-a9
QMAKE_INCDIR += /home/zynq/tools/tslib-1.21/install/include
QMAKE_LIBDIR += /home/zynq/tools/tslib-1.21/install/lib
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)

其中QMAKE_INCDIR 和 QMAKE_LIBDIR 两个变量分别用于指定 tslib 的头文件路径和库路径,也就是 tslib安装目录下的 include 文件夹路径和 lib 文件夹路径。
之后在/home/zynq/tools/qt-everywhere-opensource-src-5.9.6处打开终端输入下列命令对 Qt 源码进行配置:

./configure -prefix /home/zynq/tools/qt-everywhere-opensource-src-5.9.6/install \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtcharts \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdeclarative \
-skip qtdoc \
-skip qtgamepad \
-skip qtgraphicaleffects \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtquickcontrols \
-skip qtquickcontrols2 \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebchannel \
-skip qtwebengine \
-skip qtwebsockets \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-nomake tools -nomake examples -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 \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt

其中有一个配置项需要大家根据自己的情况进行修改,也就是第一个配置项-prefix,该配置项用于设置 Qt 编译完成之后对应的安装目录,当我们执行 makeinstall 命令时会将编译得到的库文件、插件、头文件等放置到该目录下。
配置完成之后,接下来执行 make 命令进行编译:

make -j16

编译完成后,接下来进行安装,执行如下命令:

make install

安装完成之后进入到 Qt 安装目录下,也就是/home/zynq/tools/qt-everywhere-opensource-src-5.9.6/install,进入到该目录下,该目录下包括了Qt头文件所在文件夹include、Qt库文件所在文件夹lib以及Qt插件所在文件夹plugins。
移植到开发板:
打开qt之前先配置:source /opt/pkg/petalinux/2018.3/settings.sh
然后进入/home/zynq/Qt5.9.6/Tools/QtCreator/bin启动qt,输入./qtcreator.sh运行脚本。
使用qt编写代码,然后用qt5.9.6-kid配置,然后构建代码。
。。。。
之后就是对根文件系统进行配置:
参考正点原子文档配置好qt以后,进行移植具体如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值