ARM40之Qwt移植

####准备

  • 主机平台:Ubuntu 16.04 LTS(x64)
  • 目标平台:ARM40-A5D3
  • Qt版本:Qt4.7.8
  • IDE版本:Qt Creator 2.8.1(64bit)
  • Qwt版本:Qwt6.1.3
  • GCC版本:GCC 7.3.0
  • ARM-GCC编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi

####1、下载Qwt6.1.3源代码
在sourceforge.net上下载qwt-6.1.3源代码qwt-6.1.3.tar.bz2
qwt-6.1.3.qch是帮助文件;qwt-6.1.3.pdf是API库说明。
ARM40之Qwt移植_第1张图片

####2、 编译ARM版本Qwt
默认ARM40-A5D3版本的Qt4.8.7的编译环境已经搭建完毕,在这里不再介绍。

  • 解压源代码
    使用QtCreator打开Qwt工程。打开qwtconfig.pri,注释掉下面这两行
#QWT_CONFIG     += QwtOpenGL  
#QWT_CONFIG     += QwtDesigner   

ARM40之Qwt移植_第2张图片

  • 编译qwt
    点击右下角的“锤子”图标,开始编译qwt。
    ARM40之Qwt移植_第3张图片

  • 安装qwt
    (1)将生成的libqwt.so.6.1.3,创建libqwt.so.6.1,libqwt.so.6,libqwt.so这3个软链接。将这四个文件复制到Qt4的lib目录下,本教程Ubuntu上的ARM Qt4库文件目录在/opt/qte4.8.7/lib下。
    (2)将Ubuntu的/opt/qte4.8.7/lib/目录打包,并将其解压到ARM40-A5D3的/opt目录下。

$ cd qwt-6.1.3/build-qwt-arm40_qt4-Release/lib/
$ ln -s libqwt.so.6.1.3 libqwt.so
$ ln -s libqwt.so.6.1.3 libqwt.so.6
$ ln -s libqwt.so.6.1.3 libqwt.so.6.1
$ ls
>>>>
libqwt.so  libqwt.so.6  libqwt.so.6.1  libqwt.so.6.1.3
<<<<
$ sudo cp -rf ./* /opt/qte4.8.7/lib/
$ tar cvf qte4.8.7.tar /opt/qte4.8.7/lib/

ARM40之Qwt移植_第4张图片
ARM40之Qwt移植_第5张图片

root@ARM40:# tar xvf qte4.8.7.tar -C /opt/qte4.8.7/lib/
root@ARM40:# cd qwt-6.1.3/build-qwt-arm40_qt4-Release/lib/
root@ARM40:# ln -s libqwt.so.6.1.3 libqwt.so
root@ARM40:# ln -s libqwt.so.6.1.3 libqwt.so.6
root@ARM40:# ln -s libqwt.so.6.1.3 libqwt.so.6.1
root@ARM40:# ls
>>>>
libqwt.so  libqwt.so.6  libqwt.so.6.1  libqwt.so.6.1.3
<<<<
root@ARM40:# sudo cp -rf ./* /opt/qte4.8.7/lib/

  • 复制qwt头文件
    在Ubuntu的/opt/qte4.8.7/include目录下创建Qwt目录,并将源代码qwt-6.1.3/src目录下的所有的“.h”文件复制到当前Qwt目录下。
$ cd ~
$ sudo mkdir -p /opt/qte4.8.7/include/Qwt
$ sudo cp  qwt-6.1.3/src/*.h /opt/qt4.8.7/include/Qwt

ARM40之Qwt移植_第6张图片

####3、hello world

(1)创建hello world工程,修改helloworld.pro文件,在末尾添加如下文本:

INCLUDEPATH += /opt/qte4.8.7/include/Qwt/
LIBS += -L"/opt/qte4.8.7/lib/" -lqwt

ARM40之Qwt移植_第7张图片
(2)双击“mainwindow.ui”,查看qwt designer已经生效了。将“时钟”控件放进UI,编译hello world。
ARM40之Qwt移植_第8张图片

(3)将生成的helloworld文件拷贝进ARM40-A5D3中。先配置Qt4环境变量,再运行hello world。

root@ARM40:# cd ~
root@ARM40:# sh lcdLightOn.sh
root@ARM40:# ./helloworld -qws

至此,Qwt移植结束。

####附件

lcdLightOn.sh

>>>>
#!/bin/sh
#export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/opt/qte4.8.7
export TS_ROOT=/opt/tslib
export PATH=$TS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=/lib:$TS_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TS_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TS_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
#export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
export QWS_DISPLAY="LinuxFb:/dev/fb0"
export QWS_SIZE="800X480"
export QWS_MOUSE_PROTO="Tslib:/dev/input/event0"
#export QWS_KEYBOARD="LinuxInput:/dev/input/event0"
export QWS_KEYBOARD="TTY:/dev/tty0"
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
<<<<

####参考引用

  • 米尔技术社区
  • veryARM
  • Qt for Embedded Linux Environment Variables

你可能感兴趣的:(Qt,嵌入式,Ubuntu,ARM40)