主题 : 移植QtE4.6.3到mini2440的总结 复制链接 | 浏览器收藏 | 打印
成功源于专注!
级别: 新手上路
UID: 11257
精华: 0
发帖: 21
金钱: 140 两
威望: 49 点
贡献值: 0 点
综合积分: 42 分
注册时间: 2009-12-02
最后登录: 2011-05-15
楼主  发表于: 2010-06-22 19:20

 移植QtE4.6.3到mini2440的总结

折腾了2天..终于成功在mini2440上移植了QTE4.6.3..

主要参考论坛的置顶帖Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440Fedora12下搭建Qt Creator的ARM开发环境 并 移植Qt4.6.2到Micro2440

另外感谢版主kasim的热心帮忙..

现将所作工作总结如下:
一、安装交叉编译器arm920t-eabi.tgz即arm-linux-gcc-4.1.2
复制代码
  1. #tar xvzf arm920t-eabi.tgz -C /opt
  2. #vim /root/.bashrc

添加export PATH=/opt/toolchains/arm920t-eabi/bin:$PATH
注意屏蔽掉以前的交叉编译器的路径 最后用arm-linux-gcc -v查看交叉编译器版本是否为4.1.2

二、编辑tslib对触摸屏的支持
解压tslib1.4.tar.gz后
复制代码
  1. # ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
  2. # make
  3. # make install


三、配置QtE4.6.3
将压缩包其解压到/opt
3.1制作一个配置脚本
#vim autoconfig.sh
编辑文件如下:
复制代码
  1. #!/bin/bash
  2. ./configure \
  3. -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm \
  4. -opensource \
  5. -confirm-license \
  6. -release -shared \
  7. -embedded arm \
  8. -xplatform qws/linux-arm-g++ \
  9. -depths 16,18,24 \
  10. -fast \
  11. -optimized-qmake \
  12. -pch \
  13. -qt-sql-sqlite \
  14. -qt-libjpeg \
  15. -qt-zlib \
  16. -qt-libpng \
  17. -qt-freetype \
  18. -little-endian -host-little-endian \
  19. -no-qt3support \
  20. -no-libtiff -no-libmng \
  21. -no-opengl \
  22. -no-mmx -no-sse -no-sse2 \
  23. -no-3dnow \
  24. -no-openssl \
  25. -no-webkit \
  26. -no-qvfb \
  27. -no-phonon \
  28. -no-nis \
  29. -no-opengl \
  30. -no-cups \
  31. -no-glib \
  32. -no-xcursor -no-xfixes -no-xrandr -no-xrender \
  33. -no-separate-debug-info \
  34. -nomake examples -nomake tools -nomake docs \
  35. -qt-mouse-tslib
  36. -I/usr/local/tslib/include \
  37. -L/usr/local/tslib/lib
  38. exit


3.2生成Makefile文件并编译安装
复制代码
  1. #chmod 755 autoconfig.sh
  2. #./autoconfig.sh
  3. #gmake
  4. #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
在超级终端中:
复制代码
  1. #mkdir -p /usr/local/Trolltech/QtEmbedded-4.6.3-arm
  2. #cd  /usr/local/Trolltech/QtEmbedded-4.6.3-arm
  3. #tar zxvf /udisk/QtEmbedded-4.6.3-arm.tar.gz


3.4设置开发板环境变量
复制代码
  1. #vi /etc/profile
添加:
复制代码
  1. export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
  2. export T_ROOT=/usr/local        
  3. export PATH=$QTDIR/bin:$PATH
  4. export TSLIB_CONSOLEDEVICE=none
  5. export TSLIB_FBDEVICE=/dev/fb0
  6. export TSLIB_TSDEVICE=/dev/input/event0
  7. export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
  8. export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
  9. export TSLIB_CALIBFILE=/etc/pointercal
  10. export QWS_MOUSE_PROTO=tslib:/dev/input/event0
  11. 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文件夹下的该文件即可。

附件: wenquanyi_120_50.qpf.rar (657 K) 下载次数:854
真正奇妙的不是世界是什么样子..而是世界就是这个样子..
级别: 新手上路
UID: 24438
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2010-07-08
最后登录: 2011-06-29
1楼  发表于: 2010-07-09 18:16