您的位置:首页 > 编程语言 > Qt开发

3.3 移植QTE 到 ARM 设备 出现的问题以及排错

2012-06-05 08:37 531 查看
3.3 移植QTE 到 ARM 设备 出现的问题以及排错
一、工作环境:
1、硬件:博创ARM9嵌入式开发平台2410:2410UP-ARM2410CL、PC机。
软件:主 机:redhat 9.0
      ARM平台:linux2.6.24
软件: qt-embedded-linux-opensource-src-4.4.0.tar.bz2
               tslib-1.4.tar.bz2  arm-linux-gcc-3.4.1.tar.bz2
2、交叉编译器:arm-linux-gcc-3.3.2
3、书籍:《2410经典实验指导书》(2410经典实验指导书3.2@2009.07.01.pdf)
         第132页 “3.3 移植QT/E 到 ARM 设备”
二、遇到的错误



错误原因: /usr/bin/autoconf版本太低,2.5.7,应该升级成2.5.9.
查看文件版本的命令是 “文件名 –V” 或“rpm –qa 文件名”
         
错误处理:上网搜索下载一个文件, autoconf-2.59.tar.bz2,解压,先输入 ./configure –prefix=/usr
再输入make, 结束后输入make install,然后务必重启一下机器
 
 


长命令格式格式问题:
文档资料中给的命令整理后是./configure -embedded arm-xplatform qws/linux-arm-g++ -depths  16-little-endian -qt-mouse-linuxtp -qt-mouse-tslib-I/home/sprife/qt4/for_arm/tslib1.4-install/include–L/home/sprife/qt4/for_arm/tslib1.4-install/lib -prefix
/mnt/nfs/Trolltech/qt-embedded-4.4.0
实际可以用的命令是: ./configure -embeddedarm -xplatform qws/linux-arm-g++ -depths 16 -little-endian -qt-mouse-linuxtp -qt-mouse-tslib-I/home/sprife/qt4/for_arm/tslib1.4-install/include -L/home/sprife/qt4/for_arm/tslib1.4-install/lib 
-prefix /home/share/Trolltech/qt-embedded-4.4.0
对比知,两者的差别就在一个-号上,-L必须是英文符号,而文档中是中文符号
另外 -prefix 选项要特殊注意,该指定目录必须要与实际 NFS 目录对应.例如我的虚拟机设置的目录为/home/share

ARM 端置环境变量时,一定需要在/mnt/nfs/Trolltech/qt-embedded-4.4.0目录下,
cd /mnt/nfs/Trolltech/qt-embedded-4.4.0这一句一定不能少.因为PWD这句shell脚本会把当前目录作为环境变量写入内存中,如果目录不在这里会出现其他错误.另外,ARM端,/dev目录下没有input目录, /dev/input/event0需要改为/dev/event0
export QTDIR=$PWD
exportLD_LIBRARY_PATH=$PWD/lib
exportTSLIB_PLUGINDIR=$PWD/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportTSLIB_CONFFILE=$PWD/etc/ts.conf
exportPOINTERCAL_FILE=$PWD/etc/ts-calib.conf
exportQWS_MOUSE_PROTO=tslib:/dev/event0
exportTSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export LANG=zh_CN
insmod/mnt/yaffs/touchscreen/ts-uptech.o
 
在ARM平台上进行触摸屏实验时出现以下错误:
Couldnt load module pthres
No raw modules loaded.
ts_config: Success
 
解决: 更改ts.conf配置文件
#vi/mnt/nfs/Trolltech/qt-embedded-4.4.0/etc/ts.conf
# Uncomment if you wish touse the linux input layer event interface
# module_raw input
 
改为:
# Uncomment if you wish touse the linux input layer event interface
module_raw input
注意: module_raw input需要顶格写,前面不能有空格



cp  /opt/host/armv4l/armv4l-unknown-linux/lib/librt.so.1  /arm2410cl/Trolltech/qt-embedded-4.4.0/lib/



cp /home/bc/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/libstdc++.so.6/arm2410cl/Trolltech/qt-embedded-4.4.0/lib/
命令前提: gcc-3.4.5-glibc-2.3.6已经解压缩在/home./bc文件夹下




 
不晓得redhat 9搜索功能为何如此鸡肋,再遇到类似搜索不到的情况只能手动寻找了.

命令: cp /home/bc/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/libgcc_s.so.1/arm2410cl/Trolltech/qt-embedded-4.4.0/lib/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息