QT4.5.3移植到mini2440,tiny6410 .

本文详细介绍了在Fedora平台上移植QT 4.5.3的过程,包括源码包准备、编译安装QT-X11和QT4.5.3、环境变量设置、相关库文件移植等内容。

平台:fedora(完全安装版)完全安装在后面的编译过程中才会很少因为确实库而出问题。

编译器:mini自带的 4.3.2

开发板:mini2440(nand128M)

第一步:准备源码包

从ftp://ftp.qt.nokia.com/qt/source/ 下载:qt-embedded-linux-opensource-src-4.5.3.tar.gz和

qt-x11-opensource-src-4.5.3.tar.gz

第二步: 编译安装QT-X11-4.5.3

QT-X11-4.5.3是运行于linux平台下用于仿真QT应用程序的软件,这样你便可以在linux平台下把你应用程序都调试好,然后再利用QT4.5.3把应用程序编译成ARM版本下载至开发板,这样你就可以在开发板上运行你的QT应用程序了。

首先将qt-x11-opensource-src-4.5.3.tar.gz 拷贝到Fedora9下的/home目录下

注意:编译安装QT的过程中最长出现的问题,就是硬盘上没有多余的空间了。编译安装完qt大概需要10~20G的虚拟机空间。所以在创建虚拟机的时候,把/ 目录分为10G,/home 目录分为15G,这样就可以避免这个问题。

接着执行

  1. #tar zxvf qt-x11-opensource-src-4.5.3.tar.gz  
  2. #cd qt-x11-opensource-src-4.5.3  
  3. #./configure  
  4.     #gmake      //一般用时2-3小时,如果你的机子配置不太低的情况下  
  5. #gmake install 

安装完成后,

安装OK后,在/usr/local/目录下生成Trolltech目录,这就是我们要用于在x86平台(Fedora9)下开发应用程序时所依赖的一些目录。现在你可以进入/usr/local/Trolltech/Qt-4.5.3/examples下,进入一个例子,比如进入/usr/local/Trolltech/Qt-4.5.3/examples/widgets/analogclock下,你会发现,这个例子都已经编译好了,在Fedora9的终端下直接运行:

 

 
  1. #./analogclock –qvfb  

则在Fedora9的屏幕上出现下图:

Qt移植学习之路 QT4.5.3至mini2440

接着设置一下QT-X11-4.5.3的环境变量。

注意2:这里很重要,因为如果你的环境变量设置的有问题的话,会发生很多莫名其妙的错误。

由于我们的fedora9.0 是完全安装的所有,在系统里是装有一个qt-3.3的,由于环境变量的优先级使得我们后面设置的环境变量没有起到作用,

所以环境变量设置方法如下。

在/etc/profile中添加如下信息

 export QTDIR=/usr/local/Trolltech/Qt-4.5.3/
    export QTINC=/usr/local/Trolltech/Qt-4.5.3/include/
    export QTLIB=/usr/local/Trolltech/Qt-4.5.3/lib
    export QTINC=/usr/local/Trolltech/Qt-4.5.3/include
export PATH=:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/4.3.2/bin:/usr/local/Trolltech/Qt-4.5.3/bin:/usr/local/Trolltech/Qt-4.5.3/mkspecs:/root/bin

保存退出,在终端执行:

 

 
  1. #source /etc/profile

 

 
  1. #echo $QTDIR 

终端回显:/usr/local/Trolltech/QT-4.5.3 ――――――说明:环境变量设置成功

接着我们自己编写一个最简单的QT程序,hello world

  1. #cd qt-x11-linux-opensource-src-4.5.3/ /opt/qt-x11-opensource-src-4.5.3/examples/  ::这里很重要一定要在这个目录下否则会出错误。
  2. #mkdir hello  
  3. #vi hello.cpp   

然后把下列源程序COPY到hello.cpp中。

#include <QApplication>  
#include <QPushButton>
 int main(int argc, char *argv[]) 
      { 
           QApplication app(argc,argv); 
           QPushButton b("Hello World !"); 
              b.show(); 
              QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit())); 
               return app.exec(); 
        }

  1. # qmake –project (产生hello.pro文件)  
  2. #qmake            (产生Makefile文件)  
  3. #make              (执行Makefile以生成可执行程序) 

接着就会出现下面这张图片

Qt移植学习之路 QT4.5.3至mini2440

 

第三步:编译安装QT4.5.3

首先我们建立两个目录用来存放接下来编译出来的一些目标文件,在Fedora9的根目录下建立mini2440 和 tslib两个目录,终端执行:

  1. #cd /  
  2. #mkdir mini2440   
  3. #mkdir tslib 

接下来我们把qt-embedded-linux-opensource-src-4.5.3.tar.gz COPY到/home下, 终端执行:

 

 
  1. #cd /tmp  
  2. #tar zxvf qt-embedded-linux-opensource-src-4.5.3.tar.gz   
  3. #cd qt-embedded-linux-opensource-src-4.5.3 
  1. #./configure -prefix /mini2440  -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg   
  2. -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis  
  3.  -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info   
  4. -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb   
  5. -confirm-license -qt-mouse-tslib -I/home/mytslib/include -L/home/mytslib/lib 

上面最后一句“-I/home/mytslib/include -L/home/ mytslib/lib ”指明我们刚才编译出来触摸屏的库文件及头文件存放路径。它前面的“-qt-mouse-tslib”表示将使用触摸屏

然后执行:

 

 
  1. #gmake  
  2. #gmake install 

上面编译时间较长,一般要2到3个小时。

这样,嵌入式版本的qt4装成功了,若想进行交叉编译,首先也得改变环境变量,所以也可以在当前目录下建一个环境变量的文件setenv-embedded.sh 如下:

 

 
  1. #gedit setenv-embedded.sh 

这时跳出一个编辑文本输入:

 

 
  1. PATH=/mini2440/bin:$PATH  
  2. QTDIR=/mini2440  
  3. MAINPATH=$QTDIR/man:$MAINPATH  
  4. LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  
  5. export PATH QTDIR MAINPATH   LD_LIBRARY_PATH 

保存退出。每次进行qt4-embedded的交叉编译前先# source setenv-embedded.sh,注意我们在编译QT应用程序时要用到上述变量。下文会提到。

第四步:移植相关库文件至开发板

由于我们在/mini2440中生成的lib库比较大,即使是用nfs挂载的方式copy进去,依旧比较慢(也会发生not responsing的问题)那么我们自己在制作文件系统的时候就可以直接把我们需要的库文件制作进去。

首先在rootfs 的根目录下建立两个目录:

  1. #mkdir mini2440  
  2. #mkdir tslib 

接着

  1. #cp –rf /home/mytslib/lib  你制作的文件系统/tslib/  
  2.    #cp –rf /home/mytslib/etc 你制作的文件系统/tslib/  
  3.    #cp –rf /mini2440/lib 你制作的文件系统/mini2440/  

  

  1. #cp /home/mytslib/bin/ts_calibrate 你制作的文件系统/bin  
  2. #cp /home/mytslib/bin/ts_test 你制作的文件系统/bin  

接着修改你制作的文件系统的/etc/profile

添加一下环境变量:

  1. export  QTDIR=/mini2440  
  2. export  T_ROOT=/tslib  
  3. export  PATH=$QTDIR/bin:$PATH  
  4. export  TSLIB_CONSOLEDEVICE=none 
  5. export  TSLIB_FBDEVICE=/dev/fb0  
  6. export  TSLIB_TSDEVICE=/dev/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/event0  
  11. export  LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib  

制作完文件系统后,下载进开发板,

验证变量设置是否成功:

在开发板终端下执行:

#echo $QTDIR  如果显示  #/mini2440,则说明设置成功了,在QT的移植过程中环境变量的设置是非常重要的,如果设置的不正确会出现很多问题。这样最基本的QT的移植便算是完成了。还有字库和其他的一些东西,用到了再说吧。

验证QT程序在开发板上是否可以运行。这时你首先需要移植的就是 tslib库。

参考:http://blog.csdn.net/zhaole20094463/article/details/7272219

移植成功后,

主机终端执行:

#echo $QTDIR  ――――回显为“/mini2440”则说明环境变量设置OK。

 

  1. #cd  ……/ qt-embedded-linux-opensource-src-4.5.3/ examples/mainwindows/application/  
  2. #qmake –project      (如果提示无“qmake”命令,则肯定是你的环境变量的路径设置不正确,或者source setenv-embedded.sh一下即可)  
  3. #qmake     (成生Makefile)  
  4. #make      (生成可执行程序) 

至此,如果你没发生什么错误应该可以在application下看到“application”的可执行程序了,把它下载到你的开发板下并执行:

 

 
  1. #./application –qws    

注意:这里对内核是有要求的 一定要支持UNIX SOCKET的创建,否则会报错

QWSServerSocket::init: Address family not supported by protocol
  QWSServerSocket: unable to create socket.
  QWSServerPrivate::initServer: server socket not listening: Illegal seek
  Failed to bind to /tmp/qtembedded-0/QtEmbedded-0
  Aborted

现在就可以看到屏幕上的对话框了。

这样QT的移植初步就结束了。

一定要选择:

Networking support---->

Networking options ----->

<*>Unix domain sockets

内容概要:本文围绕“基于改进滑模控制的永磁同步电机调速系统模型研究”展开,重点介绍在Simulink环境中构建和仿真永磁同步电机(PMSM)调速系统的方法,采用改进滑模控制策略以提升系统鲁棒性与动态性能。文中系统阐述了控制算法的设计原理、系统建模流程、关键模块搭建及仿真结果分析,旨在复现高水平科研成果(SCI/EI级别),并通过仿真实验验证所提控制策略的有效性。该研究属于电机控制与电力电子领域的前沿方向,对高精度伺服系统、新能源汽车电驱动系统等实际应用场景具有重要的理论指导和工程参考价值; 适合人群:具备自动控制理论基础和Simulink/MATLAB仿真能力,从事电气工程、自动化、电力电子等相关专业的研究生、科研人员及工程技术人员,尤其适合致力于复现高水平学术论文成果的研究者; 使用场景及目标:①深入学习永磁同步电机矢量控制与滑模变结构控制的核心原理与建模方法;②复现并理解SCI/EI期刊中先进电机控制算法的技术细节;③开展电机控制系统仿真研究,优化控制参数,提升系统抗干扰能力、稳态精度与动态响应性能; 阅读建议:建议结合文中提及的完整资源包(含Simulink模型、MATLAB代码、详细说明文档)进行实践操作,重点关注控制策略的实现逻辑与仿真调试过程,注重理论推导与仿真实验相结合,同时参考同类高水平研究以拓展技术视野。
内容概要:本文提出了一种基于数据驱动的Koopman算子与递归神经网络(RNN)相结合的模型线性化方法,旨在解决纳米定位系统中因强非线性、迟滞和蠕变效应导致的建模困难问题。该方法通过Koopman算子将非线性动态系统映射至高维线性空间,利用RNN学习系统的时间序列演化特征,从而实现对复杂动态行为的精确建模与预测,并进一步集成于模型预测控制(MPC)框架中,显著提升了纳米定位系统的控制精度、动态响应能力与运行稳定性。整个算法体系在Matlab平台上完成代码实现与仿真实验验证,展示了良好的控制性能与工程应用潜力。; 适合人群:具备控制理论、非线性系统建模、机器学习及智能控制基础,从事精密仪器控制、高端制造装备研发、自动化系统设计等领域的研究生、科研人员及工程技术开发者。; 使用场景及目标:①应对扫描探针显微镜、光刻机、超精密加工平台等纳米级定位设备中的非线性建模挑战;②提升高精度运动系统的实时预测控制性能,抑制迟滞与蠕变带来的定位误差;③为数据驱动的非线性系统线性化与先进控制策略(如MPC)的融合提供可复现、可扩展的技术范例。; 阅读建议:建议读者结合提供的Matlab代码,深入理解Koopman观测矩阵构造、RNN网络训练流程及MPC控制器设计之间的协同机制,重点关注数据预处理、特征提取、模型训练与闭环控制仿真的完整链路,以便在相似高精度控制系统中进行迁移与优化应用。
内容概要:本文系统研究了基于动态三维环境下的Q-Learning算法在无人机自主避障路径规划中的应用,旨在通过强化学习实现无人机在复杂、动态空间中的智能决策与安全飞行。研究构建了完整的Q-Learning模型框架,涵盖状态空间定义、动作策略设计与奖励函数构建,重点提升了算法在存在移动障碍物场景下的路径规划能力与实时避障性能。通过Matlab仿真平台实现了算法的全流程建模与验证,展示了其在路径最优性、环境适应性与运行稳定性方面的优势,并为后续多机协同、城市密集环境等高级应用场景提供了可扩展的技术基础与代码支持。; 适合人群:具备一定编程基础和控制理论知识,从事无人机导航、智能优化算法或强化学习相关研究的科研人员及研究生。; 使用场景及目标:① 掌握Q-Learning算法在三维动态路径规划中的建模与实现方法;② 学习如何将强化学习技术应用于实际工程问题如无人机自主避障;③ 为深入研究多智能体协同、复杂非结构化环境下的路径规划提供算法原型与仿真基础; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,深入理解状态表示与奖励机制的设计逻辑,尝试调整算法参数或引入新的动态障碍物模式以评估鲁棒性,并可进一步对比其他智能算法(如DQN、A*、DWA等)在相同环境下的性能差异。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 微信小程序商城 微信小程序商城,微信小程序微店,长期维护版本,欢迎大家踊跃提交贡献代码; 使用说明和常见问题,可参阅下面的说明,如还有疑问,可访问工厂官网 https://www.it120.cc/ 寻求帮助! 新增直播带货支持,具体详见使用说明 今日头条/抖音小程序版本 本项目的今日头条/抖音小程序版本,请移步至下面的地址: https://.com/EastWorld/tt-app-mall 扫码体验 详细配置/使用教程 https://www.it120.cc/help/ikfe2k.html 遇到使用问题? 点击这里找答案,可用关键词搜索 其他优秀开源模板推荐 天使童装 / 码云镜像 / GitCode镜像 天使童装(uni-app版本) / 码云镜像 / GitCode镜像 简约精品商城(uni-app版本) / 码云镜像 / GitCode镜像 舔果果小铺(升级版) 面馆风格小程序 AI名片 / 码云镜像 / GitCode镜像 仿海底捞订座排队 (uni-app) / 码云镜像 / GitCode镜像 H5版本商城/餐饮 / 码云镜像 / GitCode镜像 餐饮点餐 / 码云镜像 / GitCode镜像 企业微展 / 码云镜像 / GitCode镜像 无人棋牌室 / 码云镜像 / GitCode镜像 酒店客房服务小程序 / 码云镜像 / GitCode镜像 面包店风格小程序 / 码云镜像 / GitCode镜像 朋友圈发圈素材小程序 / 码云镜像 / GitCode镜像 小红书企业微展 / 码云镜像 / GitCode镜像 旧物回收、废品回收 / 码云镜像 / ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值