Chinaunix首页 | 论坛 | 博客
  • 博客访问: 180772
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-29 10:30
文章分类
文章存档

2009年(12)

2008年(60)

2007年(8)

我的朋友

分类: LINUX

2007-12-27 11:00:40

将上面的软件包放到/EP9315里面
#######解压上面的相关包以后,  重新命名有以下几个目录:
qt-2.3.10
qt-2.3.2
tmake-1.13
tslib-0.1.1
tslib-patch
qt-2.3.10-patch

这些解压以后的目录都放在同一个目录下,例如,我把他们都放在了/root/myTslib/

########为qt-2.3.10 和tslib-0.1.1打上补丁
cd  /root/myTslib/qt-2.3.10
patch -p1 </root/myTslib/qt-2.3.10-patch
cd /root/myTslib/tslib-0.1.1
patch -p1
这样得到打过补丁的qt-2.3.10  和 tslib-0.1.1
 

#######设置相关的环境变量
这些环境变量都是在/root/myTslib/ 下设置的,因为我把上面解压以后的文件夹放在了此目录下.

cd /root/myTslib
export QTEDIR=$PWD/qt-2.3.10
export QT2DIR=$PWD/qt-2.3.2
export TMAKEDIR=$PWD/tmake-1.13
export TSLIBDIR=$PWD/tslib-0.1.1

########编译tslib-0.1.1

cd $TSLIBDIR

export  CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc  

chmod 07777 $TSLIBDIR/autogen.sh

./autogen.sh

export PATH=/usr/local/arm/2.95.3/bin:$PATH

 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

./configure --host=arm-linux --cache-file=arm-linux.cache  --prefix=$TSLIBDIR/build  --enable-inputapi=no

如果你触摸屏驱动程序支持ioctl操作,上面的configure操作中的--enable-inputapi=no]你可以删除。

make

make install

这样就可以在$TSLIBDIR/build 里生成需要的库及相关文件

 

########3cp tslib to qte lib dir

cp -a $TSLIBDIR/build/lib/* $QTEDIR/lib/
cp -a $TSLIBDIR/build/ts/.libs/*.so  $QTEDIR/lib/
cp -a $TSLIBDIR/build/bin/* $QTEDIR/bin
cp -a $TSLIBDIR/build/etc/ts.conf  $QTEDIR/.
cp -a  $TSLIBDIR/build/include/ts*  $QTEDIR/include/

 

#############编译qt-2.3.2 也可不用编译找到uic即可

  注意::在编译qte-2.3.10qte-2.3.2,$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf文件中 “TMAKE_LINK= arm-linux-gcc”   “TMAKE_LINK_SHLIB= arm-linux-gcc”
一定是上面的那样,
gcc
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-opengl -no-xft
make
cp -f bin/uic $QTEDIR/bin/ 

 

#####Build Qt/Embedded2.3.10
  编译之前修改 /qt-2.3.10/configs/linux-arm-g++-shared文件
:
#Linking application
下的SYSCONF_LIBS = -lm  修改为
SYSCONF_LIBS=-lm -lts
#Linking shared libraries
下的 SYSCONF_LINK_SHLIB=arm-linux-gcc修改为
 
SYSCONF_LINK_SHLIB=arm-linux-gcc -lts

修改完后,开始编译 qte-2.3.10
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH:$TMAKEDIR/bin
export LD_LIBRARY_PATH=$QT2DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH

./configure -xplatform linux-arm-g++ -no-qvfb -accel-ep93xx -depths 16 -tslib -thread -I$QTDIR/include -L$QTDIR/lib   

选择5 最大库

make

执行到tool跳出,没有编译examples,需要的包已经生成

可以cd examples 

make

直接编译 ,也可以设置好环境变量 用tmake -o 来生成Makefile 再MAKE 

编译应用程序需要的环境变量:
TMAKEDIR
TMAKEPATHQTEDIRQTDIR,其中QTDIR指向QTEDIR

 变量在编译2.3.10时已经设置好 接下来修改tmake-1.13/lib/qws/linux-arm-g++/tmake.conf文件将其中的: TMAKE_LINK= arm-linux-gcc
                  “TMAKE_LINK_SHLIB= arm-linux-gcc”
       
修改为  : TMAKE_LINK= arm-linux-g++”
                 “TMAKE_LINK_SHLIB= arm-linux-g++”

然后运行cd /examples/xxx

   tamke -o Makefile xxx.pro

   make

  

 

这样编译工作就完成了,生成的支持触摸屏的库在qte-2.3.10/lib,把这些库考到开发板的/lib下即可

并把$QTDIR/ts.conf  考到开发板的 /etc 里。在开发板上设置环境

export QTDIR=/usr/qt
export QWS_DISPLAY=EP93xx:/dev/fb0
export QWS_MOUSE_PROTO=TPanel:/dev/misc/ep93xx_ts
export QWS_SW_CURSOR=0
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty
可以把这些放到 /etc/profile 里

 

注意 cirrus公司发布的linux2.4.21 和 linux2.6.8.1触摸屏驱动不同,后者针对tslib-0.1.1 做了支持。所以使用2.6.8.1版内核,

 

这样就可以在开发板上运行上面编译的examples了,效果很好,触摸屏用起来也不错。


 


 

阅读(1098) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-10-20 16:31:07

Hello, i am using EP9315 board and i want to compile qt with 93xx framebuffer support(as you did by "-accel-ep93xx" ). But "./configure" does not recognise "-accel-ep93xx" key. How did you do that. Please contact me(yagabey@gmail.com). Thanks in advance... Yigit..

chinaunix网友2008-10-20 16:31:07

Hello, i am using EP9315 board and i want to compile qt with 93xx framebuffer support(as you did by "-accel-ep93xx" ). But "./configure" does not recognise "-accel-ep93xx" key. How did you do that. Please contact me(yagabey@gmail.com). Thanks in advance... Yigit..