【引用】Qt4.3.5-X11-交叉编译平台的搭建、移植详解

< DOCTYPE HTML PUBLIC -WCDTD HTML TransitionalEN>
Qt4.3.5-X11-交叉编译平台的搭建、移植详解
 
首先我们要知道的是Qt平台有Pc开发平台,(以本人所装的Redhat9linux/Qt4.3.5/arm-3.4.1版本为例)
一、Qt嵌入式开发平台的建立
概述:Qt嵌入式开发平台包括:
1、Qt-X11开发平台:(即为我们平时开发Qt应用程序时使用的系统平台)。
2、QtopiaCore-4.3.5开发平台(即framebuffer):该平台可以让Qt程序在pc机上模拟在嵌入式平台的运行情况,一般在QtopiaCore上模拟运行成功后才,进行交叉编译。
3、QtopiaCore-4.3.5-arm交叉编译平台:在此平台下编译通过的Qt程序就可以移植到arm板上运行了。
step1:
   建立Pc开发平台(x11、redhat9的桌面就属于X11):
   下载Qt4.3.5pc开发包qt-x11-opensource-src-4.3.5.tar.gz
   #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
   #cd Qt-4.3.5
   #./configure    //
   #make install   //此过程需要3-8小时
   安装好后,系统默认安装在/usr/local/Trolltech/Qt-4.3.5目录下
   检查环境变量:
   #which qmake  
    
step2:
   建立QtopiaCore-4.3.5编译平台(此时编译器仍然用的是默认的gcc)
   此平台下的安装包原码包和X11平台是一样的,只是configure时配置不同
   #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
   #cd Qt-4.3.5
   #./configure -embedded x86 -qvbf -no-openssl  //注意几个选项表示,以qvfb表示    -no-openssl表示不需要认证,否则会安装过程中一直叫你输入yes确认
   #make install         //此过程需要3-8个小时
   安装完成后usr目录多了一个文件夹/usr/local/Trolltech/QtopiaCore-4.3.5就表示安装成功了
 
step3:
   QtoptiaCore-4.3.5-arm交叉编译平台的建立(此时不是用系统默认的gcc来编译了)
   此平台下的安装源码包X11平台是一样的,只是configure时配置不同
   #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz
   #cd Qt-4.3.5
   #./configure -embedded arm   //注意几个选项,必须加上 -embedded arm选项
   #make install         //此过程需要3-8个小时
   安装完成后usr目录多了一个文件夹/usr/local/Trolltech/QtopiaCore-4.3.5-arm就表示安装成功了
  
step4:
   设置环境变量:环境变量的设法总的说来有4种(export、profile、.bashrc、.bashrc_profile)具体看自己情况来定
   #vi /root/.bash_profile  //在环境变量的最前面加上一句:PATH=/usr/local/Trolltech/QtopiaCore-4.3.5-arm/bin:$PATH
   #source /root/.bash-Profile   //使环境变量生效
  
   好了平台已经搭建好了,可以用他来编译Qt程序了
  
step5:
   用QtopiaCore-4.3.5-arm来进行交叉编译
检查自己的qt环境变量是否正确,如果不正确的话,就返回第4步
   #cd myqtprogram   //进入自己写的qt程序
   #qmake -project   //根QtX11环境一样编译
   #qmake
   #./myqtprogram    //运行程序
  
step6:
   察看自己写的Qt程序需要用到哪些库文件资源。
   #arm-linux-readelf -a -myqtprogram | grep Shared  //Shared首字母大写;
  
step7:
   拷贝库文件:
   根据上一步提示把Qt程序要用到的资源文件拷到自己制作的根文件系统中,以下是按本人写的Qt程序所需要的库写的
   将程序移植到arm板运行,根文件系统root.cramfs和kernel的制作在这里就不细说了,本人用的是自己早做好的qt-root文件系统。
   拷贝库文件到自己制作的root系统中(注意:拷贝时一定要看看大小,千万不要拷到连接文件(相当于快捷方式)了)
   #cd qt-root
   #cd usr/lib    //注意这里不要进到pc机linux的usr目录下去了
   #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libpng*  ./                  //把图形库考过去,否则图片显示不了,强烈建议用png、bmp格式的图片,用其他格式的图片的话,否则你还要自己做连接库
   #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtCore.so libQtGui.so  ./     //这2个库不用说一定要考的
   #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtNetwork.so  ./           //和网络相关的库
   #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libstdc++.so  ./
   #cd ../    //以下是在根文件系统qt-root/usr/local/下制增加一个Trolltech/QtopiaCore-4.3.5-arm/lib/fonts路径目录并添加相应的字体文件,否则在arm板上会出错显示不了字
   #mkdir local/Trolletch
   #mkdir local/Trolletch/Qtopia-4.3.5-arm
   #mkdir local/Trolletch/Qtopia-4.3.5-arm/lib
   #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/fonts local/Trolletch/Qtopia-4.3.5-arm/lib  //注意不要拷错路径了
step8:
   把程序下载到arm板运行(注意:本人是用的microsoft的附件/通讯工具/超级终端连接到板子上,以下的操作对象都是在板子上了)
   #./ln -s /dev/fb/0 /dev/fb0  //由于本人的板子上烧的root文件系统显示设备名称和路径都不匹配,所以只有给他做个连接了,否则运行时会提示找不到fd0
   #./myqtprogram -qws   //-qws表示以服务器模式运行
   ok能在板子上跑起来了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值