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 要裁剪很多东西为了轻巧
参考: http://www.cnblogs.com/cnnbboy/archive/2009/06/06/1497780.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体系上调试。