Safari和Chrome的内核都是webkit,无论是打算自己开发个浏览器还是在程序里集成完整的HTML解析功能,webkit都是为数不多的选择。特别是webkit分支中的jsc,可以命令行下解释执行javascript,真是想想就让人亢奋的玩物。编译环境选择的是Ubuntu 15.04 x86_64,由于玩心太重,所以首先考虑把jsc编译出来。

下载代码

有大概三种途径弄到代码,git,svn和直接下载tar.xz,我只试了后面两种

svn checkout https://svn.webkit.org/repository/webkit/trunk webkit

1

svncheckouthttps://svn.webkit.org/repository/webkit/trunkwebkit

或者从webkitgtk直接下载tar.xz

准备编译环境

执行webkit/Tools/gtk/install-dependencies可以安装大部分缺失的库代码,另外再手动补下刀

sudo apt-get install libgstreamer*

1

sudoapt-getinstalllibgstreamer*

其余的库要是还缺,apt-cache search+apt-get install 缺啥补啥吧

编译

如果下载的tar.xz的话,参考linuxfromscratch进入webkit目录执行以下代码,编译好的jsc位于./build/bin/jsc

sed -e 's/“/"/' -e 's/”/"/'

-i Source/WebCore/xml/XMLViewer.{css,js} &&

mkdir -vp build &&

cd build &&

cmake -DCMAKE_BUILD_TYPE=Release

-DCMAKE_INSTALL_PREFIX=/usr

-DCMAKE_SKIP_RPATH=ON

-DENABLE_GEOLOCATION=OFF

-DPORT=GTK

-DLIB_INSTALL_DIR=/usr/lib

-DUSE_LIBHYPHEN=OFF

-DSHARED_CORE=OFF

-DCMAKE_C_COMPILER=/home/jack/afl/afl-gcc

-DCMAKE_CXX_COMPILER=/home/jack/afl/afl-g++

-DBUILD_SHARED_LIBS=OFF

-DENABLE_MINIBROWSER=ON

-Wno-dev .. &&

make -j10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

sed-e's/“/"/'-e's/”/"/'

-iSource/WebCore/xml/XMLViewer.{css,js}&&

mkdir-vpbuild&&

cdbuild&&

cmake-DCMAKE_BUILD_TYPE=Release

-DCMAKE_INSTALL_PREFIX=/usr

-DCMAKE_SKIP_RPATH=ON

-DENABLE_GEOLOCATION=OFF

-DPORT=GTK

-DLIB_INSTALL_DIR=/usr/lib

-DUSE_LIBHYPHEN=OFF

-DSHARED_CORE=OFF

-DCMAKE_C_COMPILER=/home/jack/afl/afl-gcc

-DCMAKE_CXX_COMPILER=/home/jack/afl/afl-g++

-DBUILD_SHARED_LIBS=OFF

-DENABLE_MINIBROWSER=ON

-Wno-dev..&&

make-j10

如果是svn得到的代码,进入webkit目录后执行编译脚本得到./WebKitBuild/Release/bin/jsc

./Tools/Scripts/build-jsc --gtk --makeargs="-j10"

1

./Tools/Scripts/build-jsc--gtk--makeargs="-j10"

linux下编译webkit,Linux下编译WebKit和JSC相关推荐

  1. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  2. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...

  3. 在Linux下gcc缺省编译,在Linux下GCC将文件合起来编译

    大家用gcc懂得怎样将几个文件合来编译吗,如果不懂可以看一看,懂的请指点, 这个是老师上课的练习,目的是让我们熟悉怎样在linux的gcc下将文件合起来编译, 题目很简单的,就是输入一个浮点,然后平方 ...

  4. Linux下c和cuda混合编译,并生成动态链接库.so和使用

    Linux下c和cuda混合编译,并生成动态链接库.so和使用 2016-08-27 14:27 98人阅读 评论(0) 收藏 举报 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得 ...

  5. 编译高性能linux so库,关于如何在linux环境下生成a库和so库(改,附图)-Go语言中文社区...

    一般linux环境下的链接库分为a库和so库,分别表示静态链接库和动态链接库,其作用是把C程序编译好做成一种可执行链接文件,c主程序文件调用这些程序的函数接口是可以使用a库或so库,在主程序中只需要i ...

  6. linux下编译libuv,linux下libuv库安装教程

    下载并编译libuv libuv需要自己手动下载源码,并手动编译. 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $g ...

  7. Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)

    http://caiwei8888.blog.163.com/blog/static/3017424120101913353856/ 学习赵炯博士的<linux 0.11 内核完全注释>, ...

  8. linux编译blas,Linux下安装BLAS,CBLAS,LAPACK

    1.下载 BLAS,CBLAS:http://www.netlib.org/blas/ LAPACK:http://www.netlib.org/lapack/ 2.上传 将下载好的三个压缩文件上传到 ...

  9. debian 编译linux内核源码,Debian下为本机编译内核模块的方法

    改用Debian之后发现用之前在Red Hat下编译内核模块的Makefile不好使了,原因是在/lib/modules/`uname -r`/下没有了build目录,也没有内核的源代码.上网查了一些 ...

最新文章

  1. 苹果服务器消息转发,iOS 消息推送原理及简单实现
  2. 克隆真人语音只要1句话,AI问诊超96.4%全科医生!科大讯飞年度黑科技大秀,余承东都来了...
  3. 2021高考萧山二中成绩查询,萧山中学2018高考成绩
  4. Scrapy Django项目
  5. 语音增强效果的测试方法
  6. C语言试题六之使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。
  7. java $1参数_jmap命令详解----查看JVM内存使用详情
  8. html带图片的进度条,原生javascript上传图片带进度条【实例分享】
  9. 通信原理及系统系列4—— AWGN信道(信噪比SNR、Es/N0和Eb/N0概念的辨析、转换及使用)
  10. 从《大国崛起》(英国)看中国软件的发展
  11. html表格添加序号,通过layui给数据表格添加序号
  12. C++将一个cpp文件中的变量应用到另一个cpp文件中
  13. C++入门(六)之String
  14. 【专家视点】公域流量的尽头:数字营销回归商业本质(20页精品PPT下载)
  15. 【Shopee干货】虾皮广告关键词选词技巧
  16. 仿微信清理内存图表动画(解决surfaceView闪烁问题)
  17. pdf大小如何压缩?
  18. 项目管理之项目的挣值计算问题
  19. 卡塔兰(Catalan)数
  20. 河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航

热门文章

  1. 《深入浅出DPDK》读书笔记(七):PCIe与包处理I/O
  2. Java判断字符串是否为纯数字(0-9)
  3. 聊城初中计算机考试分数线,2021年聊城中考最低录取线是多少,聊城历年中考分数线统计...
  4. linux vi设置技巧,vi 技巧
  5. 不花钱的pdf编辑器_PDF补丁丁,一款能修改PDF的插件,只有8M~
  6. swag您的装置不支持_新品发布---微机保护装置
  7. 命令行开启一个unity实例和执行其中的脚本方法的使用和注意
  8. Castle动态代理拦截器可构建可重启的流
  9. 将您的SQL Server工作负载迁移到PostgreSQL –第3部分
  10. 如何使用PowerShell将VS Code扩展导出到另一台计算机