分类: LINUX
2007-12-27 11:00:40
#######设置相关的环境变量
这些环境变量都是在/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
./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.10和qte-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,TMAKEPATH,QTEDIR,QTDIR,其中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了,效果很好,触摸屏用起来也不错。
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..