Qt Webkit 浏览器交叉编译

先编译opensource的qt包,比如qt-everywhere-opensource-src-4.7.4.tar.gz,

注意在configure的时候不要加-no-webkit,否则生成不了libQtWebKit.so

OK, 接下来开工,假如qt的目录在/home/yourname/qt目录下,

你的工作目录是/home/yourname/qtbrowser,

在qtbrowser下写一个main.cpp如下:

#include <QtGui>
#include <QtWebKit>
#include<QWSServer>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWebView view;

    view.setGeometry(0,0,720,576);
    view.load(QUrl("http://www.google.com"));
    view.show();
    
    return app.exec();
}


然后进入qtbrowser目录, 设置如下环境变量:

export QTDIR=/home/yourname/qt
export QTINC=$QTDIR/include
export QTLIB=$QTDIR/lib
export PATH=<your toolchain path>/bin:$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTLIB:$LD_LIBRARY_PATH

 

下面语句会用/home/yourname/qt/bin目录下的qmake生成.pro文件

qmake -project

 

生成.pro后,需要做如下修改,让编译时找到对应头文件

INCLUDEPATH += /home/yourname/qt/include /home/yourname/qt/include/QtGui /home/yourname/qt/include/QtWebKit /home/yourname/qt/include/QtCore

添加如下语句,让找到链接时的库文件

LIBS += -L/home/yourname/qt/lib -lQtWebKit

 

接下来,就可以生成Makefile了

qmake -spec $QTDIR/mkspecs/qws/<toolchain prefix>-g++

这里用-spec来指定交叉编译工具,让Makefile的CXX, LINK为交叉编译命令,比如

arm-linux-gnueabi-g++.

 

生成了Makefile后,然后

make

就会生成浏览器的可执行文件了,你可以下载或者mount到目标板上去跑了。

 

注意跑之前要在目标板上配置好LD_LIBRARY_PATH, 以及字库文件的路径。

最后./qtbrowser -qws

要加上-qws, 让该进程以server态跑, 否则会出错:

QWSSocket::connectToLocalFile could not connect:: Connection refused

 

 

你可能感兴趣的:(浏览器,webkit,qt,library,OpenSource,makefile)