您的位置:首页 > 编程语言 > Qt开发

QT4.4.3 交叉编译环境搭建和移植

2009-03-07 20:32 501 查看
第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 , ARM和MIPS 。
下面是我配置时用的选项:
./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、在QTE的demos 目录下有演示程序,编译后拷贝到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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: