折腾了2天..终于成功在mini2440上移植了QTE4.6.3..
主要参考论坛的置顶帖Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440
Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440另外感谢版主kasim的热心帮忙..
现将所作工作总结如下:
一、安装交叉编译器arm920t-eabi.tgz即arm-linux-gcc-4.1.2
复制代码- #tar xvzf arm920t-eabi.tgz -C /opt
- #vim /root/.bashrc
|
添加export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH
注意屏蔽掉以前的交叉编译器的路径 最后用arm-linux-gcc -v查看交叉编译器版本是否为4.1.2
二、编辑tslib对触摸屏的支持
解压tslib1.4.tar.gz后
复制代码- # ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
- # make
- # make install
|
三、配置QtE4.6.3
将压缩包其解压到/opt
3.1制作一个配置脚本
#vim autoconfig.sh
编辑文件如下:
复制代码- #!/bin/bash
- ./configure \
- -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm \
- -opensource \
- -confirm-license \
- -release -shared \
- -embedded arm \
- -xplatform qws/linux-arm-g++ \
- -depths 16,18,24 \
- -fast \
- -optimized-qmake \
- -pch \
- -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-webkit \
- -no-qvfb \
- -no-phonon \
- -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
- exit
|
3.2生成Makefile文件并编译安装
复制代码- #chmod 755 autoconfig.sh
- #./autoconfig.sh
- #gmake
- #gmake install
|
3.3 打包移植到mini2440
安装完成后 将/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/fonts中的字体全部删除 将 wenquanyi_120_50.qpf(见附件下载直接重命名去掉.rar)字体复制到fonts
然后将lib打包:
#tar zcvf QtEmbedded-4.6.3-arm.tar.gz /lib
将压缩包放到U盘中插入mini2440
在超级终端中:
复制代码- #mkdir -p /usr/local/Trolltech/QtEmbedded-4.6.3-arm
- #cd /usr/local/Trolltech/QtEmbedded-4.6.3-arm
- #tar zxvf /udisk/QtEmbedded-4.6.3-arm.tar.gz
|
3.4设置开发板环境变量
添加:
复制代码- export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
- export T_ROOT=/usr/local
- 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=/etc/pointercal
- export QWS_MOUSE_PROTO=tslib:/dev/input/event0
- export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
|
至此Qt4.6.3移植完成..
四 设置Qt-creator
打开一个工程文件..
在Qt-creator界面左侧点击Projects图标,打开工程设置界面。
在Edit Project Settings for Project books——〉Build Settings——〉Edit Build Configuration:单击Add,在下拉列表中选择Using Qt Version “QtE4.6.2-x86”弹出对话框单击Ok按钮,在Edit Build Configuration:下会出现蓝色的Make QtE4.6.3-x86 Release active.字符,单击激活QtE4.6.3-x86 Release。
在Run Settings——〉Edit run configuration:右侧单击Show Details按钮,在打开的下拉列表中Arguments:文本框中添加参数“-qws”。
设置完毕,点击Edit图标,回到编辑界面。
编译该文件将生成的程序放到开发板上执行。
ps
如果遇到“relocation error: /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference”错误。
解决办法是进入主机/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib目录下找到libstdc++.so.6.0.8重命名为libstdc++.so.6,将其覆盖mini2240/lib文件夹下的该文件即可。