安装好EELOID的交叉编译环境:
准备移植所需源文件:
tslib.tar.gz (这个是触摸屏的源代码,用来驱动触摸屏)
qt-embedded-linux-opensource-src-4.5.3 编译 tslib 具体步骤: 安装所需工具: #apt-get install autoconf #apt-get install automake #apt-get install libtool 拷贝tslib.tar.gz文件到/opt目录下 进入/opt目录,执行命令:tar xvzf tslib.tar.gz 进入tslib目录,执行命令:cd tslib 执行下面命令: #./autogen.sh #./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes #make #make install 这样就把tslib编译好了,在/usr/local/tslib下的文件是要拷贝到开发板一致的目录下 现在可以编译qt了。 qt 具体编译步骤: 拷贝qt-embedded-linux-opensource-src-4.5.3到/opt目录下 进入/opt目录,执行命令:tar xvzf qt-embedded-linux-opensource-src-4.5.3 进入qt-embedded-linux-opensource-src-4.5.3目录,执行命令:cd qt-embedded-linux-opensource-src-4.5.3 把红色字体拷贝到终端,然后回车。 ./configure / -prefix /opt/qt-arm-4.5.3 / -opensource / -confirm-license / -release -shared / -embedded arm / -xplatform qws/linux-arm-g++ / -depths 16,18,24 / -fast / -optimized-qmake / -qt-sql-sqlite / -qt-libjpeg / -qt-zlib / -qt-libpng / -qt-freetype / -little-endian -host-little-endian / -no-qt3support / -no-libtiff -no-libmng / -no-opengl / -no-mmx -no-sse -no-sse2 / -no-3dnow / -no-openssl / -no-qvfb / -no-nis / -no-opengl / -no-cups / -no-glib / -no-xcursor -no-xfixes -no-xrandr -no-xrender / -no-separate-debug-info / -nomake examples -nomake tools -nomake docs / -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
拷贝到此结束:
这样就配置好了。 下一步就可以编译了。 命令: #make 这个执行过程大概2个小时左右 #make install 执行这个命令会生成/opt/qt-arm-4.5.3这个目录 在开发板上的操作: 为了留出空间把/usr/qpe目录删除: #rm -rf /usr/qpe #mkdir -p /opt/qt-arm-4.5.3/lib/fonts #mkdir -p /usr/local/tslib
拷贝主机文件到开发板 :
通过ftp的方法把PC机上的/usr/local/tslib/下etc lib bin目录拷贝到板子/usr/local/tslib目录下
通过ftp 的方法把PC机上的/opt/qt-arm-4.5.3/lib目录下的libQtCore.so.4.5.3
libQtGui.so.4.5.3 libQtNetwork.so.4.5.3拷贝到板子的/opt/qt-arm-4.5.3/lib目录下
通过ftp的方法把PC机上的 /opt/qt-arm-4.5.3/lib/fonts 目录下的helvetica_100_50.qpf文件拷贝到板子的/opt/qt-arm-4.5.3/lib/fonts目录下
然后进入板子的/opt/qt-arm-4.5.3/lib目录:
执行命令:
ln -s libQtCore.so.4.5.3 libQtCore.so.4
ln -s libQtGui.so.4.5.3 libQtGui.so.4
ln -s libQtNetwork.so.4.5.3 libQtNetwork.so.4 进入开发板的/usr/local/tslib/etc/,执行命令vi ts.conf 把第二行:#module_raw input的#号去掉,module_raw input要顶格,前面不能有空格。 出错:Segmentation fault
最后配置一下启动脚本: vi /etc/profile
在最后添加:
export QTDIR=/opt/qt-arm-4.5.3 export T_ROOT=/usr/local/tslib export PATH=$QTDIR/bin:$PATH export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export TSLIB_CALIBFILE=$T_ROOT/etc/pointercal export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib cd $TS_ROOT/bin
./ts_calibrate
保存退出:wq 在修改export QTDIR=/opt/qt-arm-4.5.3时 出错信息类似这样:
QFontDatabase: Cannot find font directory /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts
– is Qt installed correctly?
这种情况发生的最多的是在交叉编译的时候./configure 命令没有加 -prefix选项,导致默认的安装路径为/usr/local/Trolltech,即使你通过nfs或者拷贝到你嵌入式设备上的某个路径(比如 /foo)时,去寻找的路径还是/usr/local/Trolltech 。
重启板子,执行tslib校验程序. ./usr/local/tslib/bin/ts_calibrate,在开发板上校准一下。 到此为止所有的东西移植完了。你的板子可以运行qt4的程序了,这里不涉及如何编写qt程序。 这里给出一个测试程序hello.拷贝此程序到开发板。运行./hello -qws
Qt及QTE bolg 调试网站个人感觉还好: http://www.cuteqt.com/