Ubuntu下建立qt4的交叉编译环境

本文介绍如何在Ubuntu 8.04环境下使用arm-linux-gcc 3.4.1交叉编译器进行Qtopia Core 4.3.3的交叉编译过程。详细步骤包括配置环境变量、修改源代码文件以适配特定硬件设备、配置编译参数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:Ubuntu 8.04
交叉编译器:arm-linux-gcc 3.4.1
qt包: qtopia-core-opensource-src-4.3.3.tar.gz  自己到官网下载。

以root身份进入终端.
第一步:建立好arm-linux-gcc 3.4.1。
第二步:将qtopia-core-opensource-src-4.3.3.tar.gz拷贝到你喜欢的目录下,并进入此目录。

tar zxvf qtopia-core-opensource-src-4.3.3.tar.gz

cd qtopia-core-opensource-src-4.3.3/mkspecs/qws/Linux-arm-g++

vi qmake.conf

 

由于没有设置相应环境变量,故用绝对路径,arm-Linux- 前面加上路径/usr/local/arm/3.4.1/bin/.(也可以直接在/etc/bash.bashrc修改,加上PATH=$PATH:/usr/local/arm/3.3.2/bin来设置环境变量)

第三步: 配置QT/E

cd ../../../ 回到源代码根目录

 在文件qtopia-core-opensource-src-4.3.3/src/gui/embedded/qmouselinuxtp_qws.h中加入

#define QT_QWS_IPAQ

#define QT_QWS_IPAQ_RAW

    在文件qmouselinuxtp_qws.cpp里把/dev/h3600_ts替换为自己板子的设备文件,我的板子的设备为/dev/h3600_tsraw,正好与qmouselinuxtp_qws.cpp中使用的设备中一致,就不用改了。

第四步: 回到源代码根目录

./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 8,16,32 -no-qt3support

然后一路选择yes默认即可

最后中断会有提示,我们make,make完了之后make install即可(这是一个漫长的编译过程)

 

注意:

步骤2中如果只定义了#define QT_QWS_IPAQ则使用的是/dev/h3600_ts,如果两个都定义了则使用的是/dev/h3600_tsraw

 配置完成后运行make进行编译,编译过程中可能会出现无法找到头文件zlib.h问题,则按①,②所述修改相应文件即可。

编译完成后运行 make install进行安装, qtopia-core-opensource-src-4.3.3将被安装到/usr/local/Trolltech/QtopiaCore-4.3.3-arm

 

在开发板上设置环境变量

 

在/home/[yourname]目录下建立env.sh脚本文件,添加内容如下:

 

export  QTDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm

export  QPEDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm

export  QWS_KEYBOARD="USB:/dev/input/event1"

export  QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"

export  PATH=$QPEDIR/bin:$PATH

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

 

保存退出之后,我们编译qt的时候现确认下环境变量:在你的目录下使用命令:source env.sh ,然后qmake -project;qmake;make即可

ok!建立一个qt应用程序hello.cpp下载到目标板试试:

 

#include <QtGui/QApplication>

#include <QtGui/QWidget>

#include <QtGui/QLabel>

#include <QtCore/QTextCodec>

#include <QFont>

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

QWidget *pWidget=new QWidget;

QLabel label(pWidget);

QFont font;

font.setPointSize(12);

font.setFamily("wenquanyi");

app.setFont( font );

label.setText(QObject::tr("您好"));

pWidget->show();

return app.exec();

}


说明:我们在PC机上也安装有QT4,为了区分它们,我们可以将qte里面的可执行文件名改名,eg:
cd /usr/local/Trolltech/QtopiaCore-4.3.3-arm/bin:进入此目录,
mv moc Moc 
mv qmake Qmake 
mv rcc Rcc 
mv uic Uic
我们以后编译arm的qt应用程序时用Qmake.编译PC机的qt应用程序时用qmake

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值