首页 > 其他分享 >qt4 webkit 编译

qt4 webkit 编译

时间:2022-11-23 20:47:43浏览次数:44  
标签:qt4 .. 编译 usr webkit nomake local arm

qt4 webkit 编译 2021-05-14 15:29:44

最近编译出了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++(X86看情况)

make

make

install

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

从上面的过程可以看出,Qt库的许多模块可以单独编译的。只要先使用configure配置选上需要的模块,注意带上-fast选项和适当的-nomake选项;然后进到相应的模块源码目录中,使用qmake重新生成对应的Makfile文件;在此目录make、make

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

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

原文

https://www.csdn.net/tags/Mtjacg1sMjE3MzItYmxvZwO0O0OO0O0O.html

标签:qt4,..,编译,usr,webkit,nomake,local,arm
From: https://www.cnblogs.com/zxdplay/p/16919724.html

相关文章

  • openwrt 15.05编译问题
    https://www.izheteng.site/2020/04/03/2020-04-03-Ubuntu18-04%E4%B8%8B%E7%BC%96%E8%AF%91OpenWRT15-05%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E5%92%8C%E8%A7%......
  • C语言再学习------编译过程
    预处理---》编译--------》汇编---------》链接 1、预处理(将头文件内容及源代码汇聚处理)gcc-Etest.c-otest.i2、编译(行程汇编代码)gcc-Stest.i-otest.s3、汇......
  • MYSQL的概念、编译安装、以及自动补全
    一、数据库的基本概念1.1数据(Data)描述事物的符号记录包括数字,文字,图形,图像,声音,档案记录等以“记录”形式按统一的格式进行存储1.2表将不同的记录组织在一起用来......
  • java上位机开发(编译和部署)
        之前开发java程序的时候,一直用的是命令行来完成的。其实大家也可以用eclipse、IDEA这些工具来做。部署也是一样,一方面大家可以用maven这些工具来完成,另外一方面......
  • OpenCv4.6.0交叉编译ARM(aarch64)平台库
    1.下载交叉编译工具:gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu2.opencv官网下载opencv4.6.0源码,opencv官网下载opencv4-contrib-4.6.03.解压缩,并在源码包中新......
  • lua的编译、运行
      lua是一个脚本语言,它的编译器非常简单。一般而言,lua在游戏里面使用得比较多。它可以通过类似于脚本的形式把函数的功能串行起来,实现很多不可思议的效果。现在关于lua......
  • iTOP3588开发板Android固件编译修改成mipi显示
    iTOP3588开发板Android固件编译修改成mipi显示打开安卓12源码kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-evb7-lp4.dtsi中的设备树文件。如下图所示默认包含......
  • MySQL的概念、编译安装,以及自动补全
    一.数据库的基本概念1、数据(Data)•描述事物的符号记录•包括数字,文字,图形,图像,声音,档案记录等•以“记录”形式按统一的格式进行存储2、表•将不同的记录组织在一......
  • C语言编译预处理
    文章目录​​一、预处理指令​​​​二、包含文件​​​​三、宏定义指令​​​​1、无参数的宏​​​​2、带参数的宏​​​​四、条件编译​​​​1、#ifdef​​​​2、#i......
  • 除了"HELLO WORD"的第一次自主编译
    #include<stdio.h>intSum(intx,inty);intmain(){ inta,b,s; printf("请输入两个整数:"); scanf("%d%d",&a,&b), s=Sum(a,b); printf("两个整数和是:%d",s);}intSum......