前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt(交叉编译并移植到ARM平台)

Qt(交叉编译并移植到ARM平台)

作者头像
用户2617681
发布2019-08-08 11:25:31
6.9K0
发布2019-08-08 11:25:31
举报
文章被收录于专栏:秘籍酷秘籍酷

有时,我们需要在嵌入式系统中实现GUI,来满足特定嵌入式场景的人机交互需求,比如汽车影音系统、智能医疗终端、可视化无人机遥控等。Qt是一套C++扩展库,为嵌入式和图形显示都做出了很多优秀的改进和提升。这一篇来看看把Qt搞到ARM平台开发板中的步骤和注意事项,以备不时之需。

废话少说,第一步,自行百度(推荐google,但要先访问外国网站)下载Qt源码到Ubuntu中:(或者找林老师直接索取,QQ2437231462)

qt-everywhere-opensource-src-5.5.0.tar.gz

第二步,在编译主机Ubuntu中下载expat和dbus源码,交叉编译它们。expat是一款比较好用的XML解析器实现,dbus为Qt提供了进程间交互的功能基础。它们的样子长这个样:

expat-2.1.0.tar.gz dbus-1.8.0.tar.gz

同样,自行百度或google下载到Ubuntu中(或者找林老师直接索取,QQ2437231462)。要注意的一点是,要先安装expat,然后在装dbus,然后再到Qt。

第三步,安装编译环境必要组件,一条命令搞定:

sudo apt-get install build-essential

第四步,解压expat,并在其源代码顶层目录下编写一个配置脚本x.sh如下:

#!/bin/bash

export INSTALLDIR=/usr/local/arm/expat-2.1

sudo mkdir -p $INSTALLDIR

sudo chmod 777 $INSTALLDIR -R

./configure \

--prefix=$INSTALLDIR \

--host=arm-none-linux-gnueabi

修改x.sh的权限,配置、编译并安装三部曲:

chmod 777 x.sh; ./x.sh make make install

第五步,解压dbus,并在其源代码顶层目录下也编写一个配置脚本x.sh如下:

#!/bin/bash

export INSTALLDIR=/usr/local/arm/dbus-1.8

export PATH=$INSTALLDIR/bin:$PATH

export TARGETMACH=arm-none-linux-gnueabi

export BUILDMACH=i686-pc-linux-gnu

export CROSS=arm-none-linux-gnueabi

export CC=${CROSS}-gcc

export LD=${CROSS}-ld

export AS=${CROSS}-as

export CXX=${CROSS}-g++

sudo mkdir -p $INSTALLDIR

sudo chmod 777 $INSTALLDIR -R

./configure \

--prefix=$INSTALLDIR \

--host=$TARGETMACH \

--enable-abstract-sockets \

--enable-tests=no \

CFLAGS=-I/usr/local/arm/expat-2.1/include \

LDFLAGS=-L/usr/local/arm/expat-2.1/lib

跟expat一样,修改x.sh的权限,配置、编译并安装三部曲:

chmod 777 x.sh; ./x.sh make make install

最后进入qt源码顶层目录,为了方便维护,同样也编写一个x.sh,内容如下:

#!/bin/bash

export INSTALLDIR=/usr/local/arm/qt-5.5

sudo mkdir -p $INSTALLDIR

sudo chmod 777 $INSTALLDIR

./configure -v \ --prefix=$INSTALLDIR \ -release \ -make libs \ -xplatform linux-arm-gnueabi-g++ \ -optimized-qmake \ -pch \ -qt-sql-sqlite \ -qt-libjpeg \ -qt-zlib \ -qt-freetype \ -no-sse2 \ -no-opengl \ -no-openssl \ -no-nis \ -no-cups \ -no-glib \ -no-iconv \ -no-xcursor \ -no-xfixes \ -no-xrandr \ -no-xrender \ -no-separate-debug-info \ -nomake tools \ -nomake examples \ -dbus \ -I /usr/local/arm/dbus-1.8/include \ -L /usr/local/arm/dbus-1.8/lib

以上配置脚本如果你不想自己写,可以找林老师直接索取,QQ2437231462。但我会鄙视你,因为你最好自己写一遍,才能记得住才能去体会里面的命令的意思,不然都是浑沦吞枣。接下来,你就可以编译qt了:

chmod 777 x.sh; ./x.sh make -j 4 make install

有几个重点提前剧透一下,make的编译时间视乎你的电脑性能而定,首次编译大概需要40-60分钟,后续编译就三两分钟。但是如果你把顶层Makefile删除,那么编译时间将会跟首次一样。

将上述编译好的文件(即/usr/local/arm/下的相关文件,尤其是库文件)放到开发板中,即可将交叉编译好的Qt程序放到开发板运行了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秘籍酷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档