转 Konqueror/Embeded 的移植

简介: Konqueror/Embeded 的移植konqueror 是一个全功能的万维网浏览器(使用 KDE 中通用的部件技术 )konqueror/embedded是专为嵌入式而设计的,自带有kde库源代码.
Konqueror/Embeded 的移植 konqueror 是一个全功能的万维网浏览器(使用 KDE 中通用的部件技术 )
konqueror/embedded是专为嵌入式而设计的,自带有kde库源代码.
支持:

  • HTML4 
  • CSS 
  • JavaScript 
  • Cookies 
  • SSL 
  • Non-blocking IO 
  • Builtin Image Viewer 
  • IPv6 support 
  • Full xbel compatible bookmark support and management 
官方站点:  http://www.konqueror.org/embedded/  ,上面介绍得很详细.
下载最新版本:  http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
关于konqueror/embedded已经有不少前辈研究的很透彻了,像 http://www.minigui.org/downloads/TECHPAPER-KONQEMB-ARCH-V1.0.pdf 上,就对其结构进行了较深入的分析。
也有更新些的版本,在 http://www.cirulla.net/kdenox-snapshots/ 上有,不过后者所需的QT/Embedded版本必须大于3.1版本.
我使用的QT版本交叉编译环境如下:
 QT/Embedded 2.3.7  Qtopia-free-1.7.0 arm-linux-g++ (3.3.2版本)
所有QT资源在 ftp://ftp.trolltech.com上都能免费下载到。
下面介绍移植konqueror/embedded到arm板的过程。
下载  http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
假设解压到 /usr/local/qt/konqueror
修改 /usr/local/qt/konkueror/konq-embed/src下的main.cc文件
第334行注释掉     //(void)new PopupHandler( &app, "popup-handler" );
修改 /usr/local/qt/konqueror/konq-embed/src/defaults.h 修改一些网页默认设置,如主页等
修改 /usr/local/qt/konqueror/konq-embed/kdesrc/khtml/khtmldefaults.h 修改默认字体,如“unifont”
 /usr/local/qt/konqueror/konq-embed/src/preferencesimpl.cc 第152行
增加两行:
     setFontComboEntry( defaultFont, HTML_DEFAULT_VIEW_FONT );
     defaultFont->setCurrentItem(2);  //假设你的默认字体排序为2

设置环境变量,我的qt目录是/usr/local/qt/qt-arm,交叉编译器目录为/usr/local/arm/3.3.2
export QTDIR=/usr/local/qt/qt-arm/qt-2.3.7
export QPEDIR=/usr/local/qt/qt-arm/qtopia-free-1.7.0
export TMAKEDIR=/usr/local/qt/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$QTDIR/bin:$PATH
ln -s $QPEDIR/lib/libqpe.so $QTDIR/lib/libqpe.so
mkdir /usr/local/qt/konkueror/install          

./configure --target=arm-linux --host=arm-linux --enable-embedded --enable-qt-embedded --disable-debug --enable-ftp --enable-static --disable-shared --enable-qtopia --enable-qpe --disable-mt --with-gui=qpe --with-extra-libs=/usr/local/arm/3.3.2/lib --with-extra-includes=/usr/local/arm/3.3.2/include -without-ssl --prefix=/usr/local/qt/konqueror/install --with-qt-dir=$QTDIR --with-qt-includes=$QTDIR/include --with-qt-libraries=$QTDIR/lib --with-qtopia-dir=$QPEDIR
make
make install
编译好的文件在/usr/local/qt/konqueror/install目录下.

汉化konqueror
 cd /usr/local/qt/konqueror/konq-embed
 make messages
 编辑生成的konqueror.pot 文件, 第15行charset设置为UTF-8 
  "Content-Type: text/plain; charset=UTF-8/n"
 编辑好后用$QTDIR/tools/msg2qm/msg2qm工具将konqueror.pot 转成 konqueror.qm文件.
 $QTDIR/tools/msg2qm/msg2qm konqueror.pot konqueror.qm
 生成的 konqueror.qm 文件拷贝到 $QPEDIR/i18n/zh_CN目录下.
 注意qm 文件名必需和可执行文件名相同.如 可执行文件为 arm-linux-konqueror 那么qm文件为 arm-linux-konqueror.qm

为了能在qt上运行konqueror,在文件系统目录下最好单独建个konqueror目录,拷贝 /usr/local/qt/konqueror/install目录下的所有文件到这个konqueror目录下.我的文件系统根目录下有个 Qtopia目录,下面就建了一个konqueror目录,另外还有qtopia-free-1.7.0和qt-2.3.7目录.
做好链接: 到文件系统目录的Qtopia目录下,
ln -s konqueror/bin/arm-linux-konqueror qtopia-free-1.7.0/bin/arm-linux-konqueror 
ln -s konqueror/apps/Applications/konqueror.desktop qtopia-free-1.7.0/apps/Applications/konqueror.desktop 
ln -s konqueror/pics/konqueror.png  qtopia-free-1.7.0/pics/konqueror.png  
拷贝翻译文件 arm-linux-konqueror.qm 至 qtopia-free-1.7.0/i18n/zh_CN目录下。
另外系统启动脚本里面必须设置好环境变量.对于konqueror来说,除了设置QTDIR,QPEDIR,QTEDIR外还要设置KDEDIR,KDEDIR就设置为建的konqueror目录.
文件系统制作好后,下载到板子上,没有问题的话,就可以用它浏览网页了。
不过由于QT使用的是Unicode码,所以要显示中文,必须设置字体为unicode或是支持 unicode编码的字体,如simsun。对于编码为gb2312的网站,就出问题了,因为文件系统里并不带gb2312字库,所以显示就是乱码了。而我在PC上模拟的qt/e就没有问题,是不是因为pc上gb2312库,Qt可以自动转换的原因?还在思考中。
 
来自http://blog.csdn.net/kangray/archive/2006/06/02/769287.aspx
目录
相关文章
|
17天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
4月前
|
Ubuntu Shell 芯片
详细讲解移植u-boot.2022.10版本移植到开发板基本方法
详细讲解移植u-boot.2022.10版本移植到开发板基本方法
82 0
|
7月前
|
消息中间件
嵌入式:UCOS移植+简单创建任务
嵌入式:UCOS移植+简单创建任务
|
8月前
|
存储 SQL Linux
嵌入式Linux上移植SQLite数据库
SQLite是一种轻量级的嵌入式数据库引擎,适用于各种应用,包括嵌入式系统。在嵌入式Linux上移植SQLite数据库可以为嵌入式设备提供持久性数据存储和查询功能。本文将介绍如何在嵌入式Linux上移植SQLite数据库。
86 0
|
11月前
|
存储 数据可视化 安全
ucgui在嵌入式linux下的移植
ucgui在嵌入式linux下的移植
|
Linux
linux嵌入式移植部分配置
linux嵌入式移植部分配置
|
存储 Shell
编译移植龙芯2K1000平台下的qt-5.13
本文记录对龙芯2K进行qt5.13.1版本的移植。 本文中对于tslib的安装不做讲解,使用了QT4进行核心板开发的童鞋一般情况下,应该已经安装好了tslib了,直接使用就行。
409 0
|
Java Linux 程序员
移植之乱谈
昨天有一个博友回复,说他已经完成了android系统在windows上的移植,其中比较难的是binder系统的移植。下面是两个demo网址,我看了后倍有感触。 http://v.youku.com/v_show/id_XMzIwMDkxOTQ4.htmlhttp://v.youku.com/v_show/id_XMzIwNzI2NTg4.html 这才是真正有技术含量的移植啊! 从做android开始,听到的最多的就是移植+merge了。
1007 0
|
Shell 数据安全/隐私保护 C++

相关课程

更多