您的位置:首页 > 运维架构 > Linux

Qt/Qt-embedded-linux 4.5.1 交叉环境的建立

2010-01-27 01:28 260 查看
0. 主机环境

Linux Red Hat Enterprise Linux AS4.0

gcc:gcc-3.4.6(编译qt4.5.1有些过低需要修改qt的源代码文件)

g++:g++-3.4.6

1.需要的软件

qt-embedded-linux-opensource-4.5.1.tar.gz

2. 安装x86体系的嵌入式板Qt环境(目的是利用这个环境和(qt-x11的应用程序qvfb)进行调试arm体系下的qt程序)

解压qt-embedded-linux-opensource-4.5.1.tar.gz (tar xvzf )

对解压后的文件重命名为qt-embedded-linux-opensource-4.5.1-x86

复制qt-embedded-linux-opensource-4.5.1-x86 改名为 qt-embedded-linux-opensource-4.5.1-arm

2.1 正式开始安装x86的qt-embedded

因为gcc版本有些低再后面make时会出现src/text/qfontengine_ft.cpp 710:错误 所以首先 将 这个文件的710那个函数注释掉。

./configure -embedded x86 -qvfb (configure选项很多 --help查看)

make

make install

2.2 设置x86的环境变量(默认安装在/usr/local)

建立一个qt_x86_env.sh脚本文件

export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.1

export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.1

export QWS_KEYBOARD

export QWS_MOUSE_PROTO

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib

使脚本生效:source qt_x86_env.sh

3. 安装ARM体系的嵌入式Qt环境(务必建立好交叉工具链croostools建立或手动建立我的arm-linux-gcc是3.3.6比较低遇到问题是#define sysexit(c) exit(c))

参考这个文章吧~

http://lists.trolltech.com/pipermail/qt-embedded-interest/2009-March/000224.html

把src/corelib/global/qlibraryinfo.cpp中
#define sysexit(c) __builtin_exit(c)
改为
#define sysexit(c) exit(c)

参考 http://www.qtcn.org/bbs/read.php?tid=18115&page=e&fpage=17

3.1和安装x86不同之处

所用的编译器是arm-linux-g++(gcc)

./configure 要裁剪很多东西为了轻巧

参考: /article/7150831.html

3.2 安装

./configure -embedded arm -qvfb(根据需要有其他选项)

make

make install

3.3 设置环境变量(见x86)

4. 编译前面qt-x11下的tools生成qvfb(虚拟帧缓存)

进入src tools qvfb下make 在bin下生成qvfb

拷贝到x86 bin下(基本可以和qt-x11说拜拜了)

5. 分别设置环境变量(写程序时方便切换)(qt_x86_env.sh qt_arm_env.sh)

6. 测试程序

随便找个hello程序

首先 设置好变量qt_arm_env.sh

qmake -project

qmake

make

查看文件类型 file 执行文件看看是不是在arm体系结构上运行的程序。

可以在x86体系上调试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: