首页IT科技qt编译ui(Qt4.7.4下单独编译QtWebkit)

qt编译ui(Qt4.7.4下单独编译QtWebkit)

时间2025-08-05 03:50:56分类IT科技浏览5417
导读:最近编译出了Qt4.7.4的嵌入式版本,但没有编译QtWebkit库。在编译一个使用Webkit的工程时出错,而根据工程的需要,要单独编译QtWebkit库。...

最近编译出了Qt4.7.4的嵌入式版本                ,但没有编译QtWebkit库                。在编译一个使用Webkit的工程时出错                     ,而根据工程的需要      ,要单独编译QtWebkit库                     。

由于不想再次编译整个的Qt库            ,于是进行了下面的尝试                      ,发现单独编译QtWebkit还是简单的         ,当然其它模块也是一样的      。

具体过程如下:

1.在qt源码包的顶层运行configure配置:

------------------------------------------

./configure -opensource -confirm-license -release

\

-prefix /usr/local/arm/qte4.7.4 \

-webkit -qt-zlib -no-script \

-xplatform qws/linux-arm-gnueabi-g++ -embedded armv6 \

-qt-kbd-linuxinput -qt-mouse-linuxinput -plugin-gfx-linuxfb \

-nomake demos -nomake examples -nomake tools -fast \

-L /usr/local/arm/lib -I /usr/local/arm/include

-----------------------------------------------------------

2.生成QtWebKit模块的Makefile文件

进入QtWebKit源码所在的目录./src/3rdparty/webkit.如果在目录中执行make会出错        ,主要是qmake找不到                       ,因为在这时的Makefile文件中            ,使用的是固定路径的qmake.

使用以下命令重生成Makefile文件    ,当然后面的spec路径要根据实际情形设置

qmake

WebKit.pro -r -spec

/usr/local/arm/qte4.7.4/mkspecs/qws/linux-arm-gnueabi-g++

3.编译

make

编译过程中仍出现错误:

-----------------------------------------------------------------------------------------

......

正在进入目录

`/home/dragon/project/qte4.7.4/src/3rdparty/webkit/WebKit/qt/tests/qwebframe

然后一堆类似这样的错误

../../Api/qwebframe.cpp:21:20: error: config.h: No such file or

directory

../../Api/qwebframe.cpp:24:20: error: Bridge.h: No such file or

directory

../../Api/qwebframe.cpp:25:23: error: CallFrame.h: No such file or

directory

../../Api/qwebframe.cpp:26:22: error: Document.h: No such file or

directory

../../Api/qwebframe.cpp:27:28: error: DocumentLoader.h: No such

file or directory

......

-----------------------------------------------------------------------------------------

看来忘加

-nomake

test 选项了                        ,但幸好QtWebKit库己编译出来                ,就不去处理这些错误了            。

后来经过试验,加上-nomake

test编译就不会出现错误了                      。

4.安装

make

install

再到安装目录中检查                    ,libQtWebKit.so.4.7.4库己经安装

5.测试

使用现在的QtEmbedded来编译一个使用QtWebKit的工程browser,在make过程中出错:

------------------------------------------------------------------------------------------

In file included from

/usr/local/arm/qte4.7.4/include/QtWebKit/QWebFrame:1,

from browsermainwindow.cpp:70:

/usr/local/arm/qte4.7.4/include/QtWebKit/qwebframe.h:28:36: error:

QtScript/qscriptengine.h: No such file or directory

In file included from

/usr/local/arm/qte4.7.4/include/QtWebKit/QWebFrame:1,

from

browsermainwindow.cpp:70:

------------------------------------------------------------------------------------------

看来QtWebKit依赖QtScript                    ,只好再编译QtScript         。

下面是单独编译QtScript模块的过程

这次confiugre的参数配置如下:

------------------------------------------------------------

./configure -opensource -confirm-license -release

\

-prefix /usr/local/arm/qte4.7.4 \

-webkit -qt-zlib \

-xplatform qws/linux-arm-gnueabi-g++ -embedded armv6 \

-qt-kbd-linuxinput -qt-mouse-linuxinput -plugin-gfx-linuxfb \

-nomake demos -nomake examples -nomake tools -nomake test -fast

\

-L /usr/local/arm/lib -I /usr/local/arm/include

------------------------------------------------------------

与上次配置不同的是去掉了-no-script选项   ,增加了-nomake test选项

然后进入./src/script目录

qmake

script.pro -r -spec

/usr/local/arm/qte4.7.4/mkspecs/qws/linux-arm-gnueabi-g++

make

make

install

现在再次编译browser工程                ,终于顺利地单独编译出QtWebKit库        。并使用一个工程进行了测试                     ,一切都正常                       。

从上面的过程可以看出,Qt库的许多模块可以单独编译的

            。只要先使用configure配置选上需要的模块,注意带上-fast选项和适当的-nomake选项;然后进到相应的模块源码目录中,使用qmake重新生成对应的Makfile文件;在此目录make                、make

install    。如此这般就完成了Qt模块的单独编译.

有人可能会问      ,为什么要单独编译                        。当然可以一次就搞定所有模块            ,不过交叉编译往往由于各种原因                      ,某些模块编译通不过         ,有时有些模块肯定用不到        ,总有一些原因造成Qt的模块编译不完整                。在这时                       ,不需要再次编译所有的Qt库            ,只要单独编译就可以的。何乐而不为

声明:本站所有文章    ,如无特殊说明或标注                        ,均为本站原创发布                    。任何个人或组织                ,在未征得本站同意时,禁止复制                     、盗用      、采集            、发布本站内容到任何网站                      、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益                    ,可联系我们进行处理   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue3.0和2.0的区别大吗(Vue3中Pinia的基本使用笔记)