我教你konqueror的移植(1)


Konqueror很多人用,反正比某些浏览器强多了,本文教给大家konqueror的移植的方法。

1、编译QTE库

一般,如果你要做Qt/Embedded的开发,最好把Qt/Embedded编译成为两个版本,一个是主机版,一个是目标版。

2、在获得Qt/ Embeded 的源码之后,将其分别解压到两个目录

3、编译主机版本

1) export环境变量

export QTDIR=/usr/local/qtopia/work/qt-2.3.5

export QTEDIR=$QTDIR

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

2) 运行./configure

./configure -depths 4,8,16.32 -no-ipv6 -no-cups -no-pch -qvfb

3) 编译Qt/Embedded函数库

make sub-src

4) 编译Qt/Embedded辅助开发工具

cd tools;make

这一步就会成一个可以在主机环境(x86)下运行的uic指令,放在$QTDIR/bin目录中。

这时可以使用qte提供的qvfb工具 可以在qvfb窗口中运行examples 中的例子

四. 编译目标版本

首先安装交叉编译工具

qte 版本是qt-2.3.5

由于我使用的是PXA255的板子 它所带的触摸屏驱动与qt-embedded 中的触摸屏接口不符

必须修改qte目录下src/kernel/qwsmouse_qws.cpp

在定义QCustomTPanelHandlerPrivate类时 增加一个成员变量unsigned char prevstate

以下为修改后的类定义

class QCustomTPanelHandlerPrivate : public QWSMouseHandler {

Q_OBJECT

public:

QCustomTPanelHandlerPrivate(MouseProtocol, QString dev);

~QCustomTPanelHandlerPrivate();

private:

int mouseFD;

unsigned char prevstate;

private slots:

void readMouseData();

};

然后修改成员函数readMouseData

修改为:

void QCustomTPanelHandlerPrivate::readMouseData()

{

if(!qt_screen)

return;

CustomTPdata data;

short data2[4]={0};

int ret;

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

if(ret) {

data.status=data2[0];

data.xpos=data2[1];

data.ypos=data2[2];

QPoint q;

q.setX(data.xpos);

q.setY(data.ypos);

mousePos=q;

if(data.status && !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));

}

}

然后编译qte

编译脚本如下 :

#!/bin/sh

export QTDIR=`pwd`

export CC=arm-linux-gcc

export AR=arm-linux-ar

export NM=arm-linux-nm

export RANLIB=arm-linux-ranlib

export CXX=arm-linux-g++

export LINKER=arm-linux-g++

export STIRP=arm-linux-strip

export OPTIONS="-DQT_QWS_IPAQ -DQWS -dno-exceptions -fno-rtti -pipe"

make clean

echo yes | ./configure -release -shared -gif -no-sm -no-thread -system-zlib -system-libpng -no-mng -system-jpeg -no-nas-sound -no-opengl -no-xft -qconfig qpe -depths 16 -no-qvfb -vnc -xplatform linux-ipaq-g++ &&

make


相关内容