先编译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