移植QT

QT移植,首先移植tslib
1.tslib移植
 1.1 解压源码:
 1.2 cd tslib, ./build.sh
 1.3 在/opt/arm/tslib里就是生成的目标文件

 

2.qt移植

 2.1 解压源码

 2.2 首先看一下build.sh脚本,看一下注释内容 ,添加 -lts到qmake.conf文件,然后再执行./build.sh

 2.3 make

 2.4 make install (生成目标的文件会在这里/opt/arm/qt)

3.如何使用/opt/arm/tslib和/opt/arm/qt?

 3.1mkdir rootfs/home/qtopia;

 拷贝qt和tslib到/home/qtopia

 

 3.2在开发板上创建文件rootfs/etc/profile

 可以参考(项目文件里面的/rootfs/etc/profile)

 这个配置文件用于设置系统的环境变量

 在此文件中添加关于tslib和qt相关的内容(给软件运行时使用)

#指定QT和TSLIB的目录

 export QTDIR=/home/qtopia/qt

 export TSLIBDIR=.home/qtopia/tslib

#添加PATH和LD_LIBRARY_PATH

 export PATH=$TSLIBDIR/bin:$PATH

 export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIBDIR/lib:$LD_LIBRARY_PATH

#添加LCD和触摸屏的设备节点

export TELIB_FBDEVICE=/dev/fb0

#通过cat /proc/bus/input/devices查看你当前板卡的触摸屏的设备节点是什么

export TSLIB_TSDEVICE=/dev/event3

 

#固定
 export TSLIB_CONFFILE=$TSLIBDIR/etc/ts.conf
 export TSLIB_PLUGINDIR=$TSLIBDIR/lib/ts
 export TSLIB_CALIBFILE=$TSLIBDIR/etc/pointercal
 export TSLIB_CONSOLEDEVICE=none

 

#用于QT

#export QWS_MOUSE_PROTO="Tslib:/dev/event1 Intellimouse:/dev/mousr2"

#注意Tslib:/dev/event3关联的触摸屏的设备节点

一定要确认好!

export QWS_SIZE=800X480

 

  #按键支持(包括板卡GPIO按键和USB标准键盘,必须遵循input子系统)
#export QWS_KEYBOARD="TTY:/dev/event4 TTY:/dev/event5"

#export QWS_KEYBOARD="TTY:/dev/event1"

#(qt版本小于4.7)
export QWS_KEYBOARD=USB:/dev/event1

#字库
export QT_QWS_FONTDIR=$QTDIR/lib/fonts

#图片显示相关
export QT_PLUGIN_PATH=$QTDIR/plugins
#字体显示有关系
export QWS_DISPLAY="LinuxFB:mmWidth180:0"

 

4.首先要测试tslib和触摸屏搭配是否OK?

ts_test软件即可!

 

问题一:

No raw modules loaded.

ts_config:No such file or directory

解决:

修改opt/rootfs/home/qtopia/tslib/etc/ts.conf

将#module_raw input修改module_raw input

问题2:

如果console中断失效?

解决:

修改export QWS_KEYBOARD=USB:/dev/event1为:

export QWS_KEYBOARD=TTY:/dev/event1

 

5.测试QT和tslib之间的联系

 思路:运行一个QT的测试软件,如何进行对其交叉编译呢?

 这时一定要利用交叉编译qt源代码产生的qmake工具(/opt/arm/qt/bin/qmake)
 
  /opt/arm/qt/bin/qmake -project
  /opt/arm/qt/bin/qmake
  make

 拷贝可执行文件到开发板上

 ./可执行文件 -qws

 养成习惯fileQT软件

问题:
./animatedtiles: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决方法:
从交叉编译器中拷贝libstdc++.*到rootfs/lib/
如果你当前系统中有多个编译器,用which is
arm-linux-gcc找到当前你使用的编译器所在的路径
用find . -name libstdc++*找到库

./animatedtiles: /lib/libc.so.6: version `GLIBC_2.9' not found (required by /home/qtopia/qt/lib/libQtGui.so.4)
./animatedtiles: /lib/libc.so.6: version `GLIBC_2.10' not found (required by /home/qtopia/qt/lib/libQtNetwork.so.4)
./animatedtiles: /lib/libc.so.6: version `GLIBC_2.9' not found (required by /home/qtopia/qt/lib/libQtCore.so.4)

解决:
cp 交叉编译器的lib/* rootfs/lib/* -frd
交叉编译根的arm-concenwit-linux-gnueabi/concenwit/usr/lib

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值