我教你konqueror的移植(1)
我教你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
评论暂时关闭