虚拟机:vmware 7.0
Linux 环境:ubuntu 9.04
交叉编译环境:arm-linux-g++ 3.4.5
硬件平台:TQ2440
由于这里使用的是QT2440管盘中提供的交叉编译工具链EABI-4.3.3_EmbedSky_20100610.tar.bz2,放在/opt/目录下解压
主要是在解压后可以看到其中含有两个版本,由于qt4.7.0的编译必须使用3.4.5版本所以在设置交叉编译的路径的时候使用的是
在/etc/profile中加入
export PATH=/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH
1. 下载tslib1.4,解压
2. 进入解压的目录运行 执行./autogen.sh
3. 执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译
4. 执行make install
5. 修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)
6. 在/etc/profile中加入
export PATH=/opt/tslib:$PATH
1. 下载qt-everwhere-opensource-4.7.0,并解压最好重命名qt-everwhere-opensource-4.7.0-qte
2. 开始进行配置选项
./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license "$@"
3. 开始进行交叉编译gmake 此过程要经历很长的一段时间
4. 在交叉编译成功后运行gmake install安装,这里会默认安装到
/usr/local/Trolltech/QtEmbedded-4.7.0-arm
5. 这个时候qte的编译就成功了
1. 移植tslib,将ubuntu中的/opt/tslib 拷贝到根文件系统中的/opt/下面
2. 移植qte4.7.0将/usr/local/Trolltech/QtEmbedded-4.7.0-arm下面的lib文件夹拷贝到根文件中的相同目录下(必需得先创建相应的目录)
注:此时可以根据需要裁剪lib 中的内容去掉不用的.so文件
3. 增加新的显示中文的字体wenquanyi 放到上面的/lib/fonts目录下。删除其他不需要的字体
4. 拷贝/usr/local/Trolltech/QtEmbedded-4.7.0-arm/plugins目录到根文件系统中的/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/目录下
5. 修改profile文件添加环境变量
export TSLIB_TSDEVICE=/dev/input/event0
export LD_LIBRARY_PATH=/opt/tslib/lib:$LD_LIBRARY_PATH
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/opt/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/opt/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'
export QTDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$DTDIR/lib/plugins/imageformats:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib/plugins
export QWS_KEYBOARD=TTY:/dev/tty1
export KDEDIR=/opt/kde
export HOME=/root
此时的移植已经基本完成,可以将在ubuntu中编译好的文件放到板子上运行就可以了如:
./test –qws