现在的位置: 首页 > 综合 > 正文

accross compile QT4.43

2013年01月12日 ⁄ 综合 ⁄ 共 1996字 ⁄ 字号 评论关闭

 1步:安装许可证文件(商业版只)

如果你有商业版的Qt嵌入式Linux ,第一步是要安装您的授权文件作为的$ HOME / .qt许可。

开源版本则不需要许可证文件。

2步:打开存档

首先解压缩档案中的首选位置,然后打开它;

cd <anywhere>

 gunzip qt-embedded-linux-commercial-src-4.4.3.tar.gz

tar xf qt-embedded-linux-commercial-src-4.4.3.tar

tar –zxvf armtools.tar.bz2  //这个是交叉编译工具链

该文档假定档案解在以下目录:

~/qt-embedded-linux-commercial-src-4.4.3

配置交叉编译工具:

Export PATH=/armtools路径/bin:$PATH

3步:交叉编译编译库

在建设的Qt嵌入式Linux库,运行。 / configure脚本来配置库的发展结构。您可以列出所有的配置

系统的选择输入。 / configure的帮助。

请注意,默认情况下, Qt的嵌入式Linux配置安装在/ usr/local/Trolltech/QtEmbedded-4.4.3目录,

但可以改变使用前缀选项。另外,前缀安装选项可以用来指定一个“地方”安装的源目录。

配置系统的另一个目的是让您指定您的平台架构:

 cd  ~/qt-embedded-linux-commercial-src-4.4.3

 ./configure -embedded [architecture]

一般情况下,所有的Linux系统有framebuffer支持可以使用的通用架构。其他典型的架构是的x86 ARMMIPS

下面是我配置时用的选项:

./configure
-embedded arm -xplatform qws/linux-arm-g++ -qt-libpng -qt-gfx-linuxfb
-qt-gfx-qvfb -qt-gfx-vnc -qt-gfx-transformed -qt-gfx-multiscreen
-qt-kbd-usb –libdir /lib

 

注意:如果您想建立的Qt嵌入式Linux使用一个虚拟的framebuffer,通过- qvfb选项给configure脚本,另外 上面的命令选项 –libdir 选项是指编译后程序搜索库的路径,更多的选项可以参考 ./configure –h 查看配置选项。

 

要创建库和编译所有的demos, examples, tools,tutorials,请键入:

Gmake

在编译完成之后可以不必安装(make install,我们仅仅是需要其交叉编译生成的库文件和其bin目录下生成的编译工具。

4步:搭建NFS环境

将文件系统解压到/fs

配置NFS文件 /etc/exports

内容:/fs *(rw,sync,no_root_squash,anonuid=0,anongid=0)

这里一定要设置后面的选项,否则开发板上通过NFS启动时候,会以匿名用户登陆,而QT程序运行需要root权限。

将第三步生成t-embedded-linux-commercial-src-4.4.3/lib目录的库文件拷贝到NFS中的/fs/lib目录下,这里可能还需要一些交叉编译工具里面的库,可以在需要的时候拷贝过来。

第五步:测试

1、先测试framebuffer

先保证内核已经加入framebuffer选项并编译今内核。测试程序在

qt-embedded-linux-commercial-src-4.4.3/example/qws/framebuffer/目录下。

如何出现红绿蓝三个矩形。则说明framebuffer可用正常使用。

2、在QTEdemos 目录下有演示程序,编译后拷贝到NFS目录中,这里要保证环境变量的设置,保证所需要的qmake make 等命令是指向qt-embedded-linux-commercial-src-4.4.3/bin目录下的命令,

3、在开发板上执行程序

 ./程序名 –qws 

这个-qws是必须要选的,这是保证QT程序是以server方式运行的,还可以有其他的选项,例如:-fn 字体选项, -bg 背景色选项 –display 显示选项。

详细的可以参考其源码包中的qt-embedded.html 这个文件。

 

说明:在开始时,NFS没有配置为以root权限登陆,在创建/tmp下的创建的文件将是以匿名用户创建,而QT程序是需要root 用户组权限执行的,在将库裁剪后文件系统烧写到开发板上则不存在这个问题;

 

ps:在拷贝库文件时要用 -avfd参数 以保证拷贝过来的库文件属性不变,如要将文件系统烧写到目标板上,则需要先裁剪库,

   这是我的NFS的配置文件内容:

   

 

 

/fs *(rw,sync,no_root_squash,anonuid=0,anongid=0)

抱歉!评论已关闭.