Konqueror/Embeded 的移植

转载 2006年06月02日 10:32:00

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可以自动转换的原因?还在思考中。

举报

相关文章推荐

Qt4.6+(8) Qt embeded 4.5.3 在ARM-Linux的移植

移植这个是发现用Qt 4.6 for X86移植到ARM-Linux,理论上移植没太多问题,但实际碰到太多问题,而且QT官网上有针对Embeded Linux 的qt 4.5.3下载。这个资料也全。因...

Introducing to The Study of Embeded Development from Ten Years Experiences

一、嵌入式系统的概念            着重理解“嵌入”的概念    主要从三个方面上来理解。       1...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Embeded system 1

1、查看编译器默认搜索路径 http://www.tuicool.com/articles/AbyeimN    echo 'main(){}'|arm-linux-gcc -E -v -    正...

[Embeded--SW_分层]C代码分层

简述C为函数式语言,使用模块化的设计会对开发大型项目带来很多好处。C的模块化也可以模拟一些OO的特点。层次化与模块化C语言的应用领域,如通讯领域和嵌入式系统领域,一个的软件项目通常包含很多复杂的功能,...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)