解析Qt 4.3.5 X11 交叉编译平台的搭建、移植
创始人
2024-07-31 09:51:20
0

首先我们要知道的是Qt平台有Pc开发平台,(以本人所装的Redhat9linux/Qt4.3.5/arm-3.4.1版本为例)首先我们要知道的是Qt平台有Pc开发平台,(以本人所装的Redhat9linux/Qt4.3.5/arm-3.4.1版本为例)

一、Qt 嵌入式开发平台的建立

概述:Qt 嵌入式开发平台包括:

1、Qt-X11开发平台:(即为我们平时开发Qt应用程序时使用的系统平台)。

2、Qt opiaCore-4.3.5开发平台(即framebuffer):该平台可以让Qt程序在pc机上模拟在嵌入式平台的运行情况,一般在Qt opiaCore上模拟运行成功后才,进行交叉编译。

3、Qt opiaCore-4.3.5-arm交叉编译平台:在此平台下编译通过的Qt程序就可以移植到arm板上运行了。

step1:

建立Pc开发平台(x11、redhat9的桌面就属于X11):

下载Qt4.3.5pc开发包qt-x11-opensource-src-4.3.5.tar.gz

  1. #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz  
  2. #cd Qt-4.3.5  
  3. #./configure    //  
  4. #make install   //此过程需要3-8小时 

安装好后,系统默认安装在/usr/local/Trolltech/Qt-4.3.5目录下

检查环境变量:

  1. #which qmake     

step2:

建立Qt opiaCore-4.3.5编译平台(此时编译器仍然用的是默认的gcc)

此平台下的安装包原码包和X11平台是一样的,只是configure时配置不同

  1. #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz  
  2. #cd Qt-4.3.5  
  3. #./configure -embedded x86 -qvbf -no-openssl    
  4. //注意几个选项表示,以qvfb表示  -no-openssl表示不需要认证,否则会安装过程中一直叫你输入yes确认  
  5. #make install         //此过程需要3-8个小时 

安装完成后usr目录多了一个文件夹/usr/local/Trolltech/QtopiaCore-4.3.5就表示安装成功了

step3:

Qt optiaCore-4.3.5-arm交叉编译平台的建立(此时不是用系统默认的gcc来编译了),此平台下的安装源码包X11平台是一样的,只是configure时配置不同

  1. #tar xzvf qt-x11-opensource-src-4.3.5.tar.gz  
  2. #cd Qt-4.3.5  
  3. #./configure -embedded arm   //注意几个选项,必须加上 -embedded arm选项  
  4. #make install         //此过程需要3-8个小时 

安装完成后usr目录多了一个文件夹/usr/local/Trolltech/QtopiaCore-4.3.5-arm就表示安装成功了

step4:

设置环境变量:环境变量的设法总的说来有4种(export、profile、.bashrc、.bashrc_profile)具体看自己情况来定

  1. #vi /root/.bash_profile  //在环境变量的最前面加上一句:PATH=/usr/local/Trolltech/QtopiaCore-4.3.5-arm/bin:$PATH  
  2. #source /root/.bash-Profile   //使环境变量生效 

好了平台已经搭建好了,可以用他来编译Qt程序了

step5:

用QtopiaCore-4.3.5-arm来进行交叉编译

  1. #qmake -v  //检查自己的qt环境变量是否正确,如果不正确的话,就返回第4步  
  2. #cd myqtprogram   //进入自己写的qt程序  
  3. #qmake -project   //根QtX11环境一样编译  
  4. #qmake  
  5. #./myqtprogram    //运行程序 

step6:

察看自己写的Qt程序需要用到哪些库文件资源。

  1. #arm-linux-readelf -a -myqtprogram | grep Shared  //Shared首字母大写; 

step7:

拷贝库文件:

根据上一步提示把Qt程序要用到的资源文件拷到自己制作的根文件系统中,以下是按本人写的Qt程序所需要的库写的

将程序移植到arm板运行,根文件系统root.cramfs和kernel的制作在这里就不细说了,本人用的是自己早做好的qt-root文件系统。

拷贝库文件到自己制作的root系统中(注意:拷贝时一定要看看大小,千万不要拷到连接文件(相当于快捷方式)了)

  1. #cd qt-root  
  2. #cd usr/lib    //注意这里不要进到pc机linux的usr目录下去了  
  3. #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libpng*  ./  
  4.  
  5. //把图形库考过去,否则图片显示不了,强烈建议用png、bmp格式的图片,用其他格式的图片的话,否则你还要自己做连接库  
  6.  
  7. #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtCore.so libQtGui.so  ./     //这2个库不用说一定要考的  
  8. #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libQtNetwork.so  ./           //和网络相关的库   
  9. #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/libstdc++.so  ./  
  10. #cd ../      
  11. //以下是在根文件系统qt-root/usr/local/下制增加一个Trolltech/QtopiaCore-4.3.5-arm/lib/fonts路径目录并添加相应的字体文件,否则在arm板上会出错显示不了字  
  12.  
  13. #mkdir local/Trolletch  
  14. #mkdir local/Trolletch/Qtopia-4.3.5-arm  
  15. #mkdir local/Trolletch/Qtopia-4.3.5-arm/lib  
  16. #cp /usr/local/Trolltech/QtopiaCore-4.3.5-arm/lib/fonts local/Trolletch/Qtopia-4.3.5-arm/lib  //注意不要拷错路径了 

step8:

把程序下载到arm板运行(注意:本人是用的microsoft的附件/通讯工具/超级终端连接到板子上,以下的操作对象都是在板子上了)

  1. #./ln -s /dev/fb/0 /dev/fb0  //由于本人的板子上烧的root文件系统显示设备名称和路径都不匹配,所以只有给他做个连接了,否则运行时会提示找不到fd0  
  2. #./myqtprogram -qws   //-qws表示以服务器模式运行 

现在可以了,能在本子上跑起来了。

【编辑推荐】

QT 4应用程序解析

深度解析嵌入式QT开发环境搭建

测试自动化 浅谈QTP脚本的重用

嵌入式系统开发过程中的常见问题

 Linux下应用程序开发之QT的信号与槽机制

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...