• Qt4.7.4下单独编译QtWebkit


    Qt4.7.4下单独编译QtWebkit_奕贤2003_新浪博客

    Qt4.7.4下单独编译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库,只要单独编译就可以的。何乐而不为Qt4.7.4下单独编译QtWebkit

  • 相关阅读:
    PE文件捆绑实现二:(远程线程注入)
    C++中Vector清空
    ttrss更新到最新版本后发访问非80和443端口规避
    Git配置https_proxy访问github失败
    Haproxy配置拦截指定src的连接
    synology git管理程序添加
    ActiveMQ深入浅出系列 (一)
    sl4fj日志级别
    HTTP上传文件解析
    linux下jcmd无法获取jvmdump
  • 原文地址:https://www.cnblogs.com/lexus/p/2465899.html
Copyright © 2020-2023  润新知