解析Qt 4.3.5 X11 交叉编译平台的搭建、移植

移动开发
本文所介绍的是关于Qt 4.3.5 X11 交叉编译平台的搭建、移植,基于平台的Qt嵌入式,它是一个控制程序存储在ROM中的嵌入式处理器控制板。

首先我们要知道的是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的信号与槽机制

责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-07-04 15:13:31

QT MPlayer 移植

2011-06-28 13:47:37

Embedded QT ARM

2011-06-24 08:46:37

Linux Qt x11 4.5

2011-09-06 10:36:10

QT平台

2021-08-31 09:58:52

ChromeChromiumOzone

2011-06-23 18:04:42

Qt Embedded

2011-06-23 16:24:21

Qt Embedded 交叉编译

2011-06-23 18:16:59

Qt Qtopia

2011-07-04 10:56:10

Qt 移植 编译

2011-06-09 15:18:07

QT 编译

2011-06-08 15:27:24

QT QT 4.5 编译

2011-06-13 14:49:57

Qt Designer

2010-02-25 17:28:56

Fedora Moon

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2011-06-30 16:08:05

Qt 字库 QPF

2011-06-30 15:51:39

2023-01-09 15:11:23

LinuxVulkan X11

2023-10-09 08:59:12

X11转发Linux

2011-06-09 14:56:53

QT 编译
点赞
收藏

51CTO技术栈公众号