QT开发环境在mini2440上移植

2024-05-27 09:58
文章标签 qt 开发 环境 移植 mini2440

本文主要是介绍QT开发环境在mini2440上移植,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:http://blog.chinaunix.net/uid-20539088-id-115752.html

开发环境
操作系统: Vmware7.0 + rhel-server-5.3。
交叉编译器:arm-linux-gcc-4.3.2
目标板: mini2440 + 通宝3.5寸屏
前言:
之前在自己编译的内核和buzybox里面编译好的QT运行不了,提示 Illegal instruction 错误。解决方法见另外一篇“Illegal instruction的解决”。我现在用友善的vivi和zImage内核,友善做好的qtopia根文件系统。
编译之后没有出现Illegal instruction 错误。根据网上的东西,自己做了下QT的移植工作。编译的时间太长了。

1、下载源码包:
在:ftp://ftp.qtsoftware.com/qt/source/下载
qt-embedded-linux-opensource-src-4.5.2.tar.bz2
qt-x11-opensource-src-4.5.2.tar.bz2
在http://blog.chinaunix.net/u2/86708/showart_1924834.html上下载tslib1.4.tar.gz
2、配置ubuntu 8.04编译环境
安装g++: sudo apt-get g++
安装编译X11用到的库:sudo apt-get libx11-dev libxext-dev
安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。
这个步骤没有做,我的环境是rhel-server-5.3已经安装了,所以要根据大家的具体环境。

3、编译及安装qt-x11-opensource-src-4.5.2
qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
tar xjvf qt-x11-opensource-src-4.5.2.tar.bz2
cd qt-x11-opensource-src-4.5.2
./configure
make
make install
历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。
4、编译配置QtEmbedded-4.5.2-x86版本
A、解压
root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-x86
root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-x86

B、配置编译:
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-x86 -embedded x86 -qvfb
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make
C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make installD、建立脚本文件:setenv_arm.sh,输入以下内容:
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:$LD_LIBRARY_PATHE、编译x86版QT应用程序前,先执行此脚本文件:
root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-x86# source setenv-x86.sh

5、编译安装tslib1.4
A、安装编译过程需用到的程序
root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13)
root@hrixin-desktop:/home/hrixin# apt-get install automake
root@hrixin-desktop:/home/hrixin# apt-get install libtool

B、配置编译root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gz root@hrixin-desktop:/work/qt# cd tslib生成./configureroot@hrixin-desktop:/work/qt/tslib# source autogen.shroot@hrixin-desktop:/work/qt/tslib# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes root@hrixin-desktop:/work/qt/tslib# make
C、安装root@hrixin-desktop:/work/qt/tslib# make install-strip //生成瘦身应用程序和库打包root@hrixin-desktop:/usr/local# tar czvf tslib.tar.gz tslib
D、复制到NFS文件系统/usr/local目录下解压root@hrixin-desktop:/work/root_qtopia/usr/local# tar xzvf tslib.tar.gz E、设置环境变量,校准触摸屏。在天开板终端建立脚本文件,并执行:export TSLIB_ROOT=/usr/local/tslibexport TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_FBDEVICE=/dev/fb0export QWS_MOUSE_PROTO=Tslib:/dev/input/event0注意:触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.你可以测试有没有加载触摸屏驱动,cat /dev/input/event0(这只是我的板子上的触摸屏) ,点击触摸屏,看终端有无显示,若有则表明正确。在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:[root@FriendlyARM bin]# ./ts_calibrate可以运行此目录下的其他程序进行测试。至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5.2,设置好环境变量。

6、编译安装QtEmbedded-4.5.2-arm版本
A、解压
root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm
B、配置编译:
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-arm -embedded arm \
-release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif \
-qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -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-usb -no-glib -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
注意这个目录要跟你的tslib安装目录相同!!!
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make

C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make install
D、打包编译安装好的QtEmbedded库文件:
root@hrixin-desktop:/usr/local/Trolltech# tar czvf QtEmbedded-4.5.2-arm.tar.gz QtEmbedded-4.5.2-arm
E、建立脚本文件:setenv_arm.sh,输入以下内容:
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/:$LD_LIBRARY_PATHF、编译ARM版QT应用程序前,先执行此脚本文件:
root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-arm# source setenv-arm.sh
编译calculator
root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# calculator.pro
root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# make

7、在主机上建立NFS启动根文件系统,把编译好的库文件复制到相关目录下。
A、文件系统目录为:/work/root_qtopia/,修改rcS
[root@FriendlyARM /]# vi /etc/init.d/rcS
#/bin/qtopia &

建立Trolltech目录:
root@hrixin-desktop:/work/root_qtopia/usr/local# mdkir TrolltechB、把打包好的库文件:QtEmbedded-4.5.2-arm.tar.gz复制到/work/root_qtopia/usr/local/Trolltech目录下
root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# tar xzvf QtEmbedded-4.5.2-arm.tar.gz
root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# cd QtEmbedded-4.5.2-arm/C、复制5-F中编译好的calculator可执行文件到此目录下:
root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# cp /work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator/calculator ./
D、建立脚本文件
root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# gedit setenv.sh
输入以下内容:(把设置tslib环境变量的脚本文件内容,也添加进来) #!/bin/shexport TSLIB_ROOT=/usr/local/tslibexport TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_FBDEVICE=/dev/fb0export QWS_MOUSE_PROTO=Tslib:/dev/input/event0export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-armexport QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-armexport LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATHE、至此,主机上的文件系统已经配置好,开板通过NFS挂载到此文件系统启动。
启动后,开发板串口终端执行刚才的脚本文件(通过NFS启动,执行脚本文件未成功),设置好环境变量。
检查环境变量是否成功:
[root@FriendlyARM QtEmbedded-4.5.2-arm]# echo $QTDIR
/usr/local/Trolltech/QtEmbedded-4.5.2-arm
成功!
如果没有输出,则失败。同样的方法检查其他两个环境变量。F、运行calculator
[root@FriendlyARM QtEmbedded-4.5.2-arm]# ./calculator -qws &

这篇关于QT开发环境在mini2440上移植的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1007154

相关文章

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Qt之QMessageBox的具体使用

《Qt之QMessageBox的具体使用》本文介绍Qt中QMessageBox类的使用,用于弹出提示、警告、错误等模态对话框,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言

Qt中Qfile类的使用

《Qt中Qfile类的使用》很多应用程序都具备操作文件的能力,包括对文件进行写入和读取,创建和删除文件,本文主要介绍了Qt中Qfile类的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.QFile文件操作3.演示示例3.1实验一3.2实验二【演示 QFile 读写二进制文件的过程】4.

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义