QT移植手册:
毕设上面用到了QT,所以得移植啊移植。
其实QT移植到arm linux系统只需要两步,第一是tslib的移植,第二是qt-everywhere的移植。可以这么讲,tslib是一个环境,QT只是一个库。
废话不多说了,开始说正儿八经的。
1 tslib的移植
(1)保证LCD驱动和触摸屏驱动OK,这个就不多说了,至少有/dev/fb0 && (/dev/event0 ||/dev/input/event0)
(2)
#tar xzvf tslib-1.4.tar.gz
#cd tslib/
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
#./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/home/xura/opt/tslib
#make && make install
#cp -fr /home/xura/opt/tslib /home/xura/work/tslib(没有则新建一个)
#cd /home/xura/work/tslib/etc
#vi ts.conf
去掉module_raw input前面的#号,同时把它的#号注释项全部删除,不要让这些BT的东东扰乱了你的思维。
我的最终ts.conf内容为:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
注意:ts.conf里面的内容,module前面不可以有空格,否则会出问题.
(3)把安装好的东西考到开发板/opt下面,然后:
在开发板设置环境变量(我将tslib放置在/opt目录下)
#vi setenv.sh
export T_ROOT=/opt/tslib
export LD_LIBRARY_PATH=$T_ROOT/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$T_ROOT/pointercal
export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
然后执行这个脚本,设置好这些环境变量。
(4)测试一下:
进入/opt/tslib/bin ,执行./ts_calibrate ,进入校准,如果有段错误,那么一定是ts.conf里面module前面存在空格。
2.QT移植
./configure -prefix /home/xura/work/qtearm_4.8.0 -embedded arm -no-opengl
-no-qt3support -no-cups -no-dbus -no-3dnow -no-neon -no-phonon -no-openssl
-no-svg -qt-mouse-tslib -I (我的tslib目录/include) -L (我的tslib目录/lib)
make && make install
然后把需要的库考到开发板环境变量设置的LD_LIBRARY_PATH下面去,如果你的应用打开时出现找不到库的现象,你很有可能只拷贝了一个链接,所以拷贝库之前,先ls -s xxx.so,看看是不是链接。
如何编译一个应用呢?用你的编译出来的qt先面的bin里面有一个qmake,用它去: ./qmake (app_dir),将生成一个makefile ,然后make 就好了。把生成的执行文件拷贝到开发板,然后./appname -qws,就可以了。目前有一个bug,qt应用程序的触摸屏没校准,很奇怪。
参考:
http://blog.chinaunix.net/uid-20788517-id-1748232.html
http://www.linuxidc.com/Linux/2014-02/96332.htm
毕设上面用到了QT,所以得移植啊移植。
其实QT移植到arm linux系统只需要两步,第一是tslib的移植,第二是qt-everywhere的移植。可以这么讲,tslib是一个环境,QT只是一个库。
废话不多说了,开始说正儿八经的。
1 tslib的移植
(1)保证LCD驱动和触摸屏驱动OK,这个就不多说了,至少有/dev/fb0 && (/dev/event0 ||/dev/input/event0)
(2)
#tar xzvf tslib-1.4.tar.gz
#cd tslib/
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
#./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/home/xura/opt/tslib
#make && make install
#cp -fr /home/xura/opt/tslib /home/xura/work/tslib(没有则新建一个)
#cd /home/xura/work/tslib/etc
#vi ts.conf
去掉module_raw input前面的#号,同时把它的#号注释项全部删除,不要让这些BT的东东扰乱了你的思维。
我的最终ts.conf内容为:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
注意:ts.conf里面的内容,module前面不可以有空格,否则会出问题.
(3)把安装好的东西考到开发板/opt下面,然后:
在开发板设置环境变量(我将tslib放置在/opt目录下)
#vi setenv.sh
export T_ROOT=/opt/tslib
export LD_LIBRARY_PATH=$T_ROOT/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$T_ROOT/pointercal
export LD_LIBRARY_PATH=$T_ROOT/lib:$LD_LIBRARY_PATH
然后执行这个脚本,设置好这些环境变量。
(4)测试一下:
进入/opt/tslib/bin ,执行./ts_calibrate ,进入校准,如果有段错误,那么一定是ts.conf里面module前面存在空格。
2.QT移植
./configure -prefix /home/xura/work/qtearm_4.8.0 -embedded arm -no-opengl
-no-qt3support -no-cups -no-dbus -no-3dnow -no-neon -no-phonon -no-openssl
-no-svg -qt-mouse-tslib -I (我的tslib目录/include) -L (我的tslib目录/lib)
make && make install
然后把需要的库考到开发板环境变量设置的LD_LIBRARY_PATH下面去,如果你的应用打开时出现找不到库的现象,你很有可能只拷贝了一个链接,所以拷贝库之前,先ls -s xxx.so,看看是不是链接。
如何编译一个应用呢?用你的编译出来的qt先面的bin里面有一个qmake,用它去: ./qmake (app_dir),将生成一个makefile ,然后make 就好了。把生成的执行文件拷贝到开发板,然后./appname -qws,就可以了。目前有一个bug,qt应用程序的触摸屏没校准,很奇怪。
参考:
http://blog.chinaunix.net/uid-20788517-id-1748232.html
http://www.linuxidc.com/Linux/2014-02/96332.htm