当前位置:首页 » 编程软件 » webkit编译

webkit编译

发布时间: 2022-11-15 16:33:48

1. 如何重新单独编译QtWebkit

可以,直接下载Webkit 在编译的时候 选择编译for Qt 就行了。 但是 先提醒你,Webkit 是我见过所有的库中,最难编译的。做好心理准备。50个人编译Webkit 会有50个不同的错误。

2. WebKit嵌入式移植

苹果公司在设计WebKit之时加入了太多Mac OS X平台的独有事物,这给向其它系统的移植造成了很大障碍。不过,由于WebKit出色的开源特性,这些障碍正在被不断克服。

WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。

传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎javaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过,随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome采用V8引擎,却仍然宣称自己是WebKit内核)。

Webkit的优势是速度快,而IE的优势是兼容性好。

3. 如何在node-webkit中调用dll

最近在研究nodejs和node-webkit,需要在node-webkit应用中调用dll ,折腾了好久,遇到不少麻烦,国内没怎么介绍具体方法,就将这几天的研究成果说明下,希望对后来人有用。

( 图片粘贴不了,我把教程和涉及到的软件都上传到下面的链接去了)

说明:本文档主要说明如何通过nodejs中的ffi和ref模块来调用c的dll文件,并使node-webkit可以调用dll(涉及的软件已全部打包,可以到下面的链接去下载 :http://download.csdn.net/detail/aichikaochang/7000791 )。

1 安装nodejs,在http://nodejs.org/download/上下载32位的.msi文件,直接安装,如下所示(版本号为0.10.26):

将安装后的目录添加的环境变量中,如:D:\Program Files\nodejs (主要目的是使该目录下的node.exe可以在命令行中运行)。

2 安装python2.7版本,并设置环境变量。

3 下载node-webkit压缩文件,版本为0.8.4 。

4 安装node-gyp和nw-gyp ,这个node- www.jdjdzj.com gyp将c文件编译成nodejs的包的编译工具,nw-gyp是将c文件编译成node-WebKit的包的编译工具,具体安装方法如下:

进入cmd命令模式,输入npm install node-gyp 即可

再次输入 npm install nw-gyp即可

5 安装ffi和 ref模块,并重新编译成node-webkit可用的包,具体如下:

在命令行模式中输入:

npm install ffi

npm installref

这样会在本用户目录下生成node_moles文件夹,里面内容如下:

命令行模式进入到此目录下

下面通过nw-gyp来将ffi和ref模块重新编译。

由于ffi中包含ref模块,所以要先将ffi模块中的ref先编译,然后再将ffi编译,如下:

注意:编译命令一定要在含有package.json文件的目录下运行,命令后的—target=0.8.4是针对node-webkit的版本的,如果不是这个版本,需要改成自己的版本。最后将ref模块编译下即可。

6 编辑项目的package.json文件,此文件主要是node-webkit调用你的应用的配置文件,需要在里面添加

"webkit": {

"plugin": true

} 此选项说明你的应用需要调用第三方包,也就是node_moles/ 目录下的ffi和ref包,一个例子如下:

7下面通过一个例子来说明如何在js中调用dll :

8 最后将你的应用包括node_moles和你需要调用的dll一起压缩打包,压缩方式必须是z7(通过好压或其他压缩软件,只要后缀名是.zip的应该都可以),压缩后的文件后缀名必须是.nw,然后将该文件拷贝到node-webkit的目录下,拖进nw.exe即可执行。

9 注意: 由于ffi模块是为c语言的dll包服务的,所以你自己编写的dll必须要有 extern “C” 来修饰 。

4. 请教Android内置应用Browser编译成APK的问题

在Eclipse创建一个Android工程,把android.webkit目录下的Java代码拷贝过来;
将/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/webkit下面的EventLogTags.java也拷贝到自己的工程;
因为android.webkit下的类会使用SDK中非公开的API,我们需要解决编译错误:
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar
/home/roger/a41/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar
创建一个User Library,并且勾选System Library的选项;
加入以下Jar包:
在Java Build Path/Order and Export把创建的库放在最前面;
因为在我们应用中的android.webkit包跟SDK中的重名,所以我们需要更改包名,可以改成android.webkit2;
我们需要重新编译libchromium_net.so和libwebcore.so,并且使用另外的名字,并且把其代码中使用的android/webkit/ JNI路径改成android/webkit2/保证JNI的正确性:
在/home/roger/a41/external/chromium下面,把所有源文件的android/webkit/路径改成android/webkit2/;
打开/home/roger/a41/external/chromium/Android.mk,修改库名为libchromium_net2,并且加多一行“LOCAL_MODULE_TAGS := optional“,具体内容见后;
重新编译chromium_net,得到libchromium_net2.so;
在/home/roger/a41/external/webkit/Source/WebKit/android下面,把所有源文件的android/webkit/路径改成android/webkit2/;
打开/home/roger/a41/external/webkit/Android.mk,将库名改成libwebcore2.so,并且加多一行“LOCAL_MODULE_TAGS := optional“(需要修改两个地方,静态库编译和动态库编译),另外还需要把导入库libchromium_net改成libchromium_net2,具体内容见后;
重新编译webcore,得到libwebcore2.so;
接下来我们可以把修改后的libwebcore2.so和libchromium_net2.so push到手机的rom里面,假设路径是/data/local(如果没有写权限,用Root Explorer修改);
然后我们需要修改Java的代码,让它去加载我们自己的库,修改的地方位于JniUtil.java和WebViewCore.java,具体内容见后(加载顺序需要改变,先加载libchromium_net2.so再加载libwebcore2.so);
最后加上我们自己的Test Shell的代码,运行就OK了,如果只修改了C++的代码,重编译后再Push到手机,然后重新运行Test Shell就可以马上生效,Java的代码可以在Eclipse里面很方便的调试,C++的代码理论上也可以通过GDB进行调试;

5. 如何从android源码中编译webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行, 但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。 虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。 webkit需要的第三方库,freetype,png,jpeg,sqlite3等虽然android源码中有,但是ndk没有开放, 因此所有的第三方库,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等 都需要用ndk cross-compile成静态库,然后链接到最终的动态库中。 选择iconv是icu太大,而且没有多语言的需求,选择cairo+pixman是skia的移植性不好,而且cairo支持很多种backend。 编译第三方库需要用到autoconfig,ndk中有如何生成交叉编译链的文档,然后在configure时使用这个工具链就可以了, 但是android用到的是bionic库,因此会有很少的地方需要修改,有些库也不能生成test程序,但是静态库是没问题的。 利用ndk生成的交叉工具链,在加上webkit自带的cmake编译系统,生成webkit的动态库是没有问题的, 当然是webkit的内核,而且有些平台相关的部分代码需要修改,但是只要是以linux平台为基础,修改还是很容易的, 我移植的webkit是先移植到linux平台上,然后移植到android平台上的,所以修改相对少了很多, 但是修改大多都在WebCore/platform下,在选择了的平台相关库后,做相应的配置和修改, 其次是在WebKit目录,这个主要是支持和使用WebCore,因此在需求不是整个浏览器,而只是正常地显示网页时, 还是可以写的比较简单的。

6. linux 怎样搭建qtwebkit使用的gstreamer

1. 编译libxml2

下载libxml2-sources-2.7.6.tar.gz

解包后在当前目录下编写如下编译脚本:(当然,不用脚本也行,你可以直接执行)】

CC=arm-none-linux-gnueabi-gcc./configure--build=i686-linux--host=arm-none-linux--prefix=/home/work/dist--without-python
make&&makeinstall

2. 编译zlib, 这个太common,我不啰嗦了, glib-2.0要依赖的。

3. 编译glib-2.0

下载glib-2.24.2.tar.bz2, 解包, 这个版本的依赖库很少, 竟然只需要zlib。

老版本需要的libconv, gettext等均不需要了。

同样, 编写编译脚本:

CC=arm-none-linux-gnueabi-gcc./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/dist
CFLAGS="-I/home/work/dist/include-L/home/work/dist/lib"
glib_cv_stack_grows=noglib_cv_uscore=noac_cv_func_posix_getpwuid_r=yes
ac_cv_func_posix_getgrgid_r=yesac_cv_lib_rt_clock_gettime=noglib_cv_monotonic_clock=yes
make&&makeinstall

4. 编译gstreamer

下载gstreamer-0.10.35.tar.gz, 这个是0.10版本里面最新的了。

编译脚本:

CC=arm-none-linux-gnueabi-gccPKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/distCFLAGS=-I/home/work/dist/include--disable-registry--disable-loadsave--disable-gtk-doc
ac_cv_func_register_printf_function=no--disable-tests--disable-valgrind--disable-debug--disable-gst-debug

make&&makeinstall

5. 编译gst plugins base

下载gst-plugins-base-0.10.35.tar.gz。

编译脚本:

CC=arm-none-linux-gnueabi-gccPKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/distCFLAGS=-I/home/work/dist/include--disable-valgrind--disable-x--disable-gnome_vfs--disable-alsa--disable-ogg--disable-pango--disable-theora--disable-vorbis--disable-examples

make&&makeinstall


接下来开始编译Qt

Qt的配置文件很复杂, 我就不写出来了, 就是要注意这三点:

1. 在Qt 的configure 时加上-force-pkg-config, 否则会在WebCore的feature.pri中检查时报"Disabling video e the lack of GLib/Gio/GStreamer.",

也就是说会不支持video.

具体可以看这个pri片段:

!contains(QT_CONFIG,no-pkg-config):system(pkg-config--existsglib-2.0gio-2.0gstreamer-0.10):{
DEFINES-=ENABLE_VIDEO=0
DEFINES+=ENABLE_VIDEO=1
DEFINES+=WTF_USE_GSTREAMER=1
DEFINES-=WTF_USE_GSTREAMER=0
}else{
message("DisablingvideoethelackofGLib/Gio/GStreamer.")
DEFINES-=ENABLE_VIDEO=1
DEFINES+=ENABLE_VIDEO=0
}


如果不指定-force-pkg-config, 就会被当作no-pkg-config.

2. 为configure指定:PKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig, 否则也会diabling video

3. 为了让webkit库能找到gstreamer等库, 还需要在webkit.pro中加上

7. 关于在Windows下编译webkit内核的详细资料

webkit.org上已经有完善的资料了
http://www.webkit.org/building/build.html

8. 如何vs2008编译webkit

不要猜了,编译生成的右边有选项是生成发布版(Release)还是除错版(Debug),根据你的需要选择,初期默认是Debug,你可以改成Release。发布版的话生成和引用都在release目录里,除错版都在debug里

9. MAC OSX用Xcode编译webkit,有详细的步骤吗

1.使用Xcode软件。Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行。也能开发ios程序等,是一种软件。在windows上类似这种能编c语言的还有微软出的visual studio,和其他免费的一些如codeblocks,c-free等。
在Xcode中编译运行C/C++的操作步骤:
1)打开Xcode,在欢迎界面点击Create a new Xcode project。
2)弹出一个对话框,在左侧栏选择Mac OS X分类的Application,右侧选择Command Line Tool,点击Next。
3)在Proct Name填写项目名称,如HelloMac,其余默认即可(type里也可以选择C或C++),点击Next后选择路径并点击Create完成项目创建。
4)在Xcode主界面左侧点击main.m,把代码替换成C/C++的代码,点击左上角的Run按钮即可编译运行,界面下方会弹出控制台显示运行结果。

热点内容
竖屏大屏导航工厂密码一般是多少 发布:2025-05-14 06:49:29 浏览:805
如何在手机里设置无线网密码 发布:2025-05-14 06:47:54 浏览:119
动态ip文件服务器 发布:2025-05-14 06:44:22 浏览:890
文字分行的脚本有什么 发布:2025-05-14 06:33:10 浏览:288
svn小乌龟怎么配置 发布:2025-05-14 06:31:43 浏览:393
视频播放器android 发布:2025-05-14 06:31:43 浏览:720
android工作室 发布:2025-05-14 06:26:00 浏览:658
汽车官方配置表如何下载 发布:2025-05-14 06:21:41 浏览:800
停车项目源码 发布:2025-05-14 06:20:05 浏览:358
htc忘记密码怎么解锁 发布:2025-05-14 06:04:42 浏览:102