####准备
- 主机平台: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库说明。
####2、 编译ARM版本Qwt
默认ARM40-A5D3版本的Qt4.8.7的编译环境已经搭建完毕,在这里不再介绍。
- 解压源代码
使用QtCreator打开Qwt工程。打开qwtconfig.pri,注释掉下面这两行
#QWT_CONFIG += QwtOpenGL
#QWT_CONFIG += QwtDesigner
-
编译qwt
点击右下角的“锤子”图标,开始编译qwt。
-
安装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/
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
####3、hello world
(1)创建hello world工程,修改helloworld.pro文件,在末尾添加如下文本:
INCLUDEPATH += /opt/qte4.8.7/include/Qwt/
LIBS += -L"/opt/qte4.8.7/lib/" -lqwt
(2)双击“mainwindow.ui”,查看qwt designer已经生效了。将“时钟”控件放进UI,编译hello world。
(3)将生成的helloworld文件拷贝进ARM40-A5D3中。先配置Qt4环境变量,再运行hello world。
root@ARM40:# cd ~
root@ARM40:# sh lcdLightOn.sh
root@ARM40:# ./helloworld -qws
至此,Qwt移植结束。
####附件
>>>>
#!/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
<<<<
####参考引用