QT2.3.7嵌入式环境搭建

时间:2025-07-14

嵌入式Qt2.3.7环境搭建详细过程。

1.首先准备好所需要的软件和交叉编译工具:

arm-linux-gcc-3.4.1

gcc-3.4.5

交叉编译工具链 用于编译生成libuuid 生成makefile Qt/Embedded Qt/X11 Qtopia 触摸屏校准可生成potential文件 jpeg库文件 解决找不到-ljpeg的问题 e2fsprogs-1.35.tar.gz tmake-1.13.tar.gz qt-embedded-2.3.7.tar.gz qt-x11-2.3.2.tar.gz tslib-1.3.tar.gz jpegsrc.v6b.tar.gz qtopia-free-1.7.0.tar.gz

2.安装交叉编译工具

编译安装gcc3.4.5版本(高版本在编译时会出更多的兼容性错误)

在根目录下解压arm-linux-gcc,并在/etc/bashrc添加相应路径

注销后再次登陆,然后以以下方式判断安装是否成功

# arm-linux-gcc –v

# gcc -v

3.安装tmake工具

tmake用于交叉编译生成qt应用程序的makefile,也可用于生成qt的本地makefile,区别在于设置TMAKEPATH路径的不同,一个用于arm,一个用于x86。

# tar zxvf tmake-1.13.tar.gz

# vim tmake-1.13/lib/qws/linux-arm-g++/tmake.conf

做如下的修改

TMAKE_LINK=arm-linux-g++ //将原来的arm-linux-gcc改成arm-linux-g++

TMAKE_LINK_SHLIBS=arm-linux-g++

# mv tmake-1.13 /usr/local/

# vim ~/.bash_profile 添加以下一些信息

PATH=/usr/local/tmake-1.13/bin:$PATH

TMAKEPATH=/usr/local/tmake-1.13/lib/qws/linux-arm-g++

export PATH

export TMAKEPATH

# source ~/.bash_profile使环境变量生效

4.安装e2fsprogs

E2fsprogs为arm编译libuuid库

修改/usr/local/arm/3.4.1/arm-linux/sys-include/linux/fd.h

添加#include <linux/compiler.h>

# cd /home/qt

# tar zxvf e2fsprogs-1.35.tar.gz

# cd e2fsprogs-1.35

# mkdir build

嵌入式Qt2.3.7环境搭建详细过程。

# cd build

# ../configure --enable-elf-shlibs --build=i386-linux --host=arm-linux

--with-cc=arm-linux-gcc --with-linker=arm-linux-ld(交叉编译器地址)

# make

其中lib/libuuid.so.1.2 libuuid.so.1 libuuid.so即是我们需要编译的库

5.解压qtopia

# cd /home/qt

# tar –zxvf qtopia-free-1.7.0.tar.gz

# cd qtopia-free-1.7.0

# export QPEDIR=$PWD

下面要用到QPEDIR这个环境变量,也可以放在bashrc中

6.安装Qt/Embedded

# cd /home/qt

# tar zxvf qt-embedded-2.3.7.tar.gz

# cd qt-2.3.7

此处修改添加对触摸屏的支持:

#vim /home/qt/qtopia-free-1.7.0/src/qt/qconfig-qpe.h

在末尾添加#define QWS_CUSTOMTOUCHPANEL

因为触摸屏驱动已经带在开发板中,所以我选择自定义方式来使用它,触摸屏驱动位置为/dev/input/ts0 其中/dev/input/mice为usb鼠标驱动

将qconfig-qpe.h复制到qt-2.3.7/src/tools/下

再修改相关源码

# vim src/kernel/qwsmouse_qws.cpp

=============================================================

class QCustomTPanelHandlerPrivate : public QWSMouseHandler {

Q_OBJECT

public:

QCustomTPanelHandlerPrivate(MouseProtocol, QString dev);

~QCustomTPanelHandlerPrivate();

private:

unsigned char prevstate; //加上这行

int mouseFD;

private slots:

void readMouseData();

};

=================================================================================== QCustomTPanelHandlerPrivate::QCustomTPanelHandlerPrivate( MouseProtocol, QString )

{

嵌入式Qt2.3.7环境搭建详细过程。

#ifdef QWS_CUSTOMTOUCHPANEL

if ((mouseFD = open( "/dev/input/ts0", O_RDONLY)) < 0) { //驱动位置修正

qWarning( "Cannot open /dev/input/ts0 (%s)", strerror(errno));

return;

} else {

sleep(1);

}

prevstate=0; //添加

QSocketNotifier *mouseNotifier;

mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read,

this );

connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData()));

#endif

}

=================================================================================== void QCustomTPanelHandlerPrivate::readMouseData()

{

#ifdef QWS_CUSTOMTOUCHPANEL

if(!qt_screen)

return;

CustomTPdata data;

short data2[4]={0};

int ret;

ret=read(mouseFD,data2,sizeof(data2));

if(ret) {

data.status=data2[0]&&0xff; //根据当前触摸屏获取的数据结构存入data中此处为状态位 data.xpos=data2[1];

data.ypos=data2[2];

QPoint q;

q.setX(data.xpos);

q.setY(data.ypos);

mousePos=q;

if(data.status == 0x01 && !prevstate) { //此处判断按下状态

emit mouseChanged(mousePos,Qt::LeftButton);

} else if(!data.status && prevstate){

emit mouseChanged(mousePos,0);

}

prevstate=data.status;

}

if(ret<0) {

qDebug("Error %s",strerror(errno));

}

#endif

}

嵌入式Qt2.3.7环境搭建详细过程。

保存退出

# vim include/qstring.h

第166行改为

uchar& cell() {uchar *t = &cl;return *t; }

uchar& row() {uchar *t = &rw;return *t; }

qsortedlist.h中51行clear()函数出错

在其前面加this->

qgfxvfb_qws.cpp 中is_screen_gfx,xoffs,yoffs,clipbounds,未声明

打开此文件,在所有未声明变量前加this->

qgfxtransformed_qws.cpp中

xoffs,yoffs,width,height,srcbits,buffer,srcwidgetoffs,srcwidth,srcheight,srcwidgetoffs等未声明

打开此文件,在所有未声明变量前加this->

建立shell文件set_env安装QTE

#!bin/bash

export QTDIR=$PWD

export QTEDIR=$QTDIR

export PATH=$QTDIR/bin:$PATH

…… 此处隐藏:5078字,全部文档内容请下载后查看。喜欢就下载吧 ……
QT2.3.7嵌入式环境搭建.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219