交叉编译Qt程序为android,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来进行交叉编译

#qmake -v  //检查自己的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、付费专栏及课程。

余额充值