概述:
QT程序的移植过程主要是程序的编辑和交叉编译QT程序. 交叉编译QT程序时需要交叉编译好的QTE库. 本文主要针对于GEC2410开发板,在PC机端交叉编译QTE的源码包,从而得到交叉编译的QTE库.
;
;
; 在PC机上调试好QTE程序后, 需要把QTE程序移植到ARM平台上. 移植最重要的环节是交叉编译QTE程序.
;
; 交叉编译QTE程序需要两个条件:
; 1 交叉编译器 (arm-linux-gcc)
; 2 交叉编译的qte库 (qt-2.3.7).
;
;
; 建立交叉编译QTE程序的环境步骤如下:
工作目录为:
/home/build_qte/
;
;1 交叉编译QTE库
export PATH=/usr/local/arm/3.3.2/bin:$PATH
cd /home/build_qte/
tar zxvf qt-embedded-2.3.7.tar.gz ; 在/usr目录下解压qt-embedded-2.3.7.tar.gz源码包
mv qt-2.3.7 qt-2.3.7-arm
cd qt-2.3.7-arm
把qt-2.3.2生成的uic 拷贝到bin目录下
export QTDIR=$PWD
export QTEDIR=$QTDIR
./configure -xplatform linux-arm-g++ -shared -debug -qconfig local -qvfb -depths 4,8,16,32
make
; 在用configure配置时,可以用configure --help看一看配置的选项
;
;2 实例-qte程序的移植
; 建立qte开发的工作目录
mkdir /home/qte-arm
cd /home/qte-arm
; 建立shell文件,设置环境变量
vi set-qte-arm.sh
; 在文件中添加如下
#!/bin/bash
export QTDIR=/home/build_qte/qt-2.3.7-arm
;根据自己的路径来修改交叉编译qt-2.3.7-arm的目录的路径
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export TMAKEDIR=/usr/tmake-1.11
;根据自己安装的tmake-1.11来添加tmake目录,我这里tmake的路径是:/usr/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$QTDIR/bin:$TMAKEDIR/bin:/usr/local/arm/3.3.2/bin:$PATH
echo $PATH
echo $TMAKEPATH
; 保存退出
; 先不要执行source set-qte-arm.sh (不要设置环境变量)
; 建立工程目录
mkdir hello
cd hello
; 用designer生成工程文件(hello.pro), 窗体文件(hello.ui), 和main.cpp文件.
cd ..
source set-qte-arm.sh ;设置环境变量
cd hello
; 生成源文件
uic hello.ui -o hello.h
uic hello.ui -i hello.h -o hello.cpp
删除hello.pro, hello.ui文件, 省下hello.h, hello.cpp, main.cpp三个文件
此处要检查是否生成的文件是空文件,如果是空就要先使用uic 命令后再执行。。。SH
progen -o hello.pro ; 生成工程文件
tmake hello.pro -o Makefile ; 生成Makefile文件
vi Makefile ;编辑刚刚生成的Makefile文件
; 把LINK = arm-linux-gcc 改为
; LINK = arm-linux-g++
; 把LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lm -lqte改为
; LIBS = $(SUBLIBS) -L/usr/local/arm/3.3.2/lib -L$(QTDIR)/lib -lm -lqte
; 保存退出
make ;开始编译
; 编译完之后,生成hello的可执行文件,把可执行文件下载到开发板上用以下命令运行
./hello -qws ; 执行编译的hello