文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>qt程序移植全过程

qt程序移植全过程

时间:2009-03-27  来源:FreedomXura

硬件平台:扬创YC2440          OS:ubuntu 8.04       software:qt3
这么久了,终于成功将qt3程序移植到arm板子上去了。情不自禁记录此文,恭贺恭贺!同时记录下方便以后的学习研究.首先明白一点,所谓qt能跨平台运行是指我们在用相同的源程序,不同的编译器编译生成不同体系的可执行文件,这些可执行文件可以分别运行在不同的平台上.简单的举个例子说就是:我们用x86体系的qt编译运行在x86体系的pc机上(如我们常说的计算机)的程序,用arm体系的qt编译运行在arm上的程序,只不过我们通常是在pc机上建立交叉编译器来编译arm的可执行文件.

说明:qt4尚未移植成功,本文仅针对qt3.移植到扬创公司的utulinux平台
一.先建立好PC机上的开发环境
1. 建立pc机上的qt
apt-get install qt3-*
此为pc机的x86体系的qt环境,安装完成后可以直接qmake,designer等
2.建立交叉编译的qt环境
(1)首先安装arm-linux-gcc(3.3.2版本).可以自己到网上搜索这个源,解压了设置一下环境变量就可以直接用了,注意:以root身份登录,sudo -s可以切换到root
mkdir /usr/local/arm
tar -xjvf arm-linux-gcc.tar.bz2 -C /
vi /etc/bash.bashrc
加上这句:PATH=$PATH:/usr/local/arm/3.3.2/bin,保存退出. 重启终端输入arm-linux-gcc -v可以检测arm-linux-gcc是否建立好.
(2)安装嵌入式qt(同样root身份)
源码包:qtopia-1.7-tp.tar.bz2
mkdir /utulinux
cp qtopia-1.7-tp.tar.bz2 /utulinux
cd /utulinux
tar xjvf qtopia-1.7-tp.tar.bz2
rm  xjvf qtopia-1.7-tp.tar.bz2
cd qtopia-1.7-tp/
. build(注意.后有一个空格)
注意这一步:编译到一半的时候会有提示说错误,找到qtopia-free-1.7.0/src/3rdparty/libraries/libavcodec下的Makefile文件,打开,可以看到里面有三个-e,把那三个-e删了保存。然后直接在qtopia-free-1.7.0/src下make 就行了.
OK!编译完成之后就装好了,运行的时候设运行它里面的脚本. setenv.然后可以开始编译程序了

OK!做到这一步,基本的那些编程环境已经构建好了,让我们来做个联系:
下载下面的源代码:
文件: hello.tar.bz2
大小: 11KB
下载: 下载
解压进入目录:
1.pc机上运行:
            cd /[源程序所在目录]
            qmake -project
            qmake
            make
            ./hello就可以运行了
2.arm上运行:首先进入/utulinux/qtopia-1.7-tp设置环境变量
            cd /utulinux/qtopia-1.7-tp
            . setenv
            cd /[源程序所在目录]
            progen -t app.t -o hello.pro
            tmake -o Makefile hello.pro
            make
            vi hello.desktop
           
            加上:
                 [Desktop Entry]
            Comment=An Example Program
            Exec=hello   "可执行文件名    
            Icon=hello   "图标名
            Type=Application
            Name=hello   "可执行文件名
                 保存退出

            ls就可以看得到可执行文件,但是不能在pc机上运行,因为这是用arm-linux-gcc编译的,是
            基于arm体系的,我们需要把它传送到arm板子上去才能运行.OK!下一步:搭建minicom+nfs
安装minicom:
apt-get install minicom
完成后设置minicom,参数如下:
minicom -s
          A -    Serial Device      : /dev/ttyS0   
          B - Lockfile Location     : /var/lock    
          C -   Callin Program      :       
          D - Callout Program      :                                          
          E -    Bps/Par/Bits       : 115200 8N1                               
          F - Hardware Flow Control : No                                       
          G - Software Flow Control : No 
保存退出:
剩下的一些配置可以参考我的另外一篇blog:
http://blog.chinaunix.net/u2/86708/showart_1871067.html 
开始共享,传输:
1.串口连接arm和pc(必不可少,否则minicom无法正常工作)
2.minicom(不出意外的话,就可以看得到arm板的东西了)
3.连接网线
4.编写nfs的脚本(首先确认网线已经连接好)
vi nfs_ini.sh
ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast xxx.xxx.xxx.254 up
mount -t nfs -o nolock -o tcp [pc机的IP]:/[pc机上要共享的目录] /[arm上共享目录]
(注:我们将nfs的协议改为tcp协议,否则有时较大文件无法copy)
保存退出
5.source nfs_ini.sh(或则给它加上可执行权限,直接执行也可以)
6.cd /[pc机上要共享的目录]
  cp hello /opt/qtopia/bin
  cp hello.desktop /opt/qtopia/apps/Applications
7.reboot 重启arm
然后你可以看得到一个图标,点击运行,即可!
Good luck!
相关阅读 更多 +
排行榜 更多 +
房间毁灭模拟器最新版

房间毁灭模拟器最新版

休闲益智 下载
街头追逐者最新版

街头追逐者最新版

休闲益智 下载
弓箭手2内置作弊菜单

弓箭手2内置作弊菜单

休闲益智 下载