Qt2.3.7交叉编译
luyued 发布于 2011-01-04 20:52 浏览 N 次Qt2.3.7交叉编译
关键字:qt 2.3.7 交叉编译
first created: 2008-6-16, by zwx
changed: 2008-6-20, by zwx
2008-8-16, by zwx
2008-11-01, by zwx
linux readhat 9 里面已经有QT2和QT3,在/usr/lib/qt-2.3.1和/usr/lib/qt-3.1,运行designer2或designer3即可
说明:本文档只针对使用qt在arm9上做图形界面开发。如果需要学习QT,可直接使用windows版本的qt4,非常方便。
一、开发环境:
主机环境:Redhat linux 9
交叉编译器:arm-linux-gcc 3.3.2
二、编译过程
注意事项:下面的命令中要防止出现中文字符。需要编译成支持多线程,否则QThread等线程相关类不能使用。
1、解压各个包
2、安装交叉编译工具
在/etc/bashrc添加下面一行即可
export PATH=/usr/local/arm/3.3.2/bin:$PATH
3、安装tmake
解压即可
4、交叉编译qt-2.3.7
将文件夹重命名为qt-2.3.7ARM
cd qt-2.3.7ARM
export QTDIR=$PWD
export QTEDIR=$QTDIR
cp /配置文件所在路径/qconfig-local.h ./src/tools
make clean
./configure -xplatform linux-arm-g++ -shared -debug -qconfig local -qvfb -depths 4,8,16,32 -thread
make
cd ..
5、vi /etc/bashrc添加下面几行(假设Qt所有目录为QT=/usr/local/arm/Qt)
#
#tmake dir
QT=/usr/local/arm/Qt
export TMAKEDIR=$QT/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$PATH
#
#Qt/Embedded 2.3.7
export QTEARMDIR=$QT/qt-2.3.7ARM
export PATH=$QTEARMDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTEARMDIR/lib:$LD_LIBRARY_PATH
6、交叉编译过程:使用QT3编程,在QTE2.7下交叉编译
(1)在QT3下编程
使用/usr/lib/qt-3.1/bin/designer设计界面程序
使用qmake生成makefie文件,make,运行程序即可
如果要使用多线程,可在工程设置->C++属性页中config项增加thread;
如果需要使用sqlite3动态库,可在工程设置->C++属性页中Libs项增加-lpsqlite3
(2)修改程序,符合qt2编程要求
将界面生成的源码拷贝出来
cp .ui/* ./
修改原程序,使之可以在qt2.3.7交叉编译通过.
例如不能使用中文,QTextEdit使用QMultiLineEdit代替.生成源码中包含的界面头文件#include "../filename.ui.h"更改为#include "filename.ui.h"
修改.pro工程文件,去掉.ui,增加.cpp和.h文件到.pro工程文件
(3)交叉编译程序
(可选:使用命令progen -o hello.pro -t app.t生成项目文件,一般不用,按上面要求直接手动编辑就可)
echo $TMAKEPATH
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEARMDIR
tmake -o makefile hello.pro
产生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命令即可
(4)下载到板子上运行即可
7、使用Qtopia
(1)安装
rpm –ivh qtopia-free-1.7.0-2rh9.i386.rpm
安装在/opt/Qtopai目录下
(2)运行和编译例子程序
(参考按照后/opt/Qtopia/doc下的帮助网页)
Here are the steps necessary to compile and run the example program on the Linux desktop:
Check the environment is correct:
export QPEDIR=/opt/Qtopia
export QTDIR=/opt/Qtopia
export PATH=$QTDIR/bin:$PATH
export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-generic-g++
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
Make a copy of the example:
cd somewhere
cp -r $QPEDIR/examples/application .
cd application
Generate a Makefile:
tmake -o Makefile example.pro
Build the example:
make
Install it:
su # root privileges required to install
cp example.desktop $QPEDIR/apps/Applications/
cp Example.png $QPEDIR/pics/
cp example $QPEDIR/bin/
cp example.html $QPEDIR/help/html/
exit # no need to be root anymore
To run it, first run the Qt Virtual Framebuffer:
qvfb &
Then run the Qtopia environment:
qpe
Your application should be available in the Applications tab visible inside the Qt Virtual Framebuffer window.
If you want to distribute your applications to others, build an RPM package, e.g.:
mkipks -rpm -arch i386 example.control
8、交叉编译Qtopia
交叉编译过程
解压缩源码包qtopia-free-1.7.0.tar.gz到/opt/下
export QPEDIR=/opt/qtopia-free-1.7.0
export QTDIR=$QTEARMDIR
export PATH=$QPEDIR/bin:/usr/local/arm/3.3.2/bin:$PATH
export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-arm-g++
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
cd /opt/qtopia-free-1.7.0/src
./configure -xplatform linux-arm-g++
拷贝uic到$QTEARMDIR/bin
make
编译例子
export QPEDIR=/opt/qtopia-free-1.7.0
export QTDIR=$QTEARMDIR
export PATH=$QPEDIR/bin:/usr/local/arm/3.3.2/bin:$PATH
export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-arm-g++
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
cd 例子所在目录
tmake -o Makefile example.pro
产生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命令即可
9、制作cramfs文件系统
mkdir /mnt/cram
mount –t cramfs qtopia.cramfs /mnt/cram –o loop
将/mnt/cram打包,解压缩到另一个目录temp下
对文件系统做操作
mkcramfs temp xxxxxx.cramfs (生成新的根文件系统)
10、安装qte-4.4.3
/usr/include/openssl/kssl.h:72:18: krb5.h: 没有那个文件或目录的解决办法
ln -s /usr/kerberos/include/com_err.h /usr/include/com_err.h
ln -s /usr/kerberos/include/profile.h /usr/include/profile.h
ln -s /usr/kerberos/include/krb5.h /usr/include/krb5.h
11、qt中文相关
将中文转换为Unicode编码才能使用控件显示出来。
- 07-01· 北凉国的那些事(组诗)
- 07-01· 《乱世佛音》 第七章 巨变
- 07-01· 南匈奴始末(3)
- 06-30· 流浪在波希米尼亚
- 06-30· 希尼亚从大洋西岸放飞新
- 06-28· 瑪利亞之城 - 家庭日 "光
- 06-28· 至青年营弟兄姐妹的一封
- 06-26· 《三国群英大富翁》追忆
- 06-24· 东莞血汗工厂实录(281:沙田
- 06-22· 第一次看戏
- 06-22· 经典复刻,独一无二:试
- 06-22· 蓝旗营教学中心9月份盛大
- 06-22· 品牌折扣女装嫣然品牌折
- 06-21· IQVopdnkvdz 1100
- 06-21· kriyoylto8fyds'p;tyijyfuifiogoi
- 06-21· 巴黎春天缤纷圣诞 喜迎新
- 06-21· 晒JS宝宝贝贝些 咯
- 06-21· 司马氏的谥法和葬仪
- 06-21· [转载]司马氏的谥法和葬仪
- 06-21· 闲来蓟县看秋山