系统信息:Mac OS 10.9.4
环境:Xcode 5.1
请给予足够的耐心,等待源码下载、排除路径问题、编译等一系列漫长的时间。
下载源码:
以下下载地址均来自:webkit官方网站 www. webkit.org
1. 你可以去http://nightly.webkit.org/下载source文件
(此时名为WebKit r172372,约35.6M,随更新可能会有所变化)
2. 你可以在浏览器中打开以网址即可开始下载源码压缩包
(此时为1G左右,好像是多了一些debug的文件)
http://nightly.webkit.org/files/WebKit-SVN-source.tar.bz2
然后在终端进入Downloads文件夹但后解压缩
(此部亦可打开Finder找到文件后双击进行解压)
tar jxvf WebKit-SVN-source.tar.bz2
3. 你可以在终端输入以下命令,获取源码
svncheckout https://svn.webkit.org/repository/webkit/trunk
注:如果提示找不到svn命令,请自行安装svn
编译源码:
一、用Xcode打开webkit主目录下的工程文件
二、Xcode的菜单File->WorkspaceSettings->Build->Derived Data Location一栏选择Workspace-relative,输入WebKitBuild ,然后选择Advanced…,在弹出框中选择Custom选项,后面选择Relative to Workspace
之后,在Products后输入WebKitBuild,
在Intermediates后输入Build/WebKitBuild
三、Xcode的菜单Product->Scheme->EditScheme…
在弹出框中,最上端可以选择Scheme,请选择All Source(target WebProcess)
在中间Executable选择WebProcess(这样编译后会出现一个Safari,在此也可以选择MiniBrowser.app,这也是Webkit提供的UI层,编译完后可再次到此处修改)
四、点击Run编译并运行
五、稍等之后,编译出错?很正常,莫慌莫慌。记住,无论出现什么错误,都不会是源码的问题,大多数情况下都会是路径配置问题。(由于版本的不同,缺少的文件可能不同,所以还是请大家编译找到错误之后,针对性拷贝文件,勿急勿躁)
以下是本人碰到的问题,由于网上关于Xcode下编译webkit内核较少,有问题大多数出在头文件处,处理方式类似如下
(1) llvm-c/Analysis.h file notFound
在webkit的主目录下,有一个WebKitLibraries的文件夹下,其下有个LLVMincludesMavericks.tar.bz2,解压,进入解压后的目录,有llvm,llvm-c两个文件夹,将这两个文件夹都复制到<webkit主目录> / WebKitBuild/<Configuration>/usr/local/include目录下; 默认情况下,Configuration为Debug;
继续编译,出现第二个错
(2) library not found for–lLLVMTablleGen
其意思是找不到libLLVMTablleGen.a这个库,故顺着刚才的思路,打开<webkit主目录>下的WebKitLibraries文件夹,其下还有另外一个压缩包LLVMLibrariesMavericks.tar.bz2,解压,进入目录,发现有很多后缀为.a的文件,将所有文件直接复制到<webkit主目录> / WebKitBuild/<Configuration>/usr/local目录下; 默认情况下,Configuration为Debug;
编译,等了好久好久(编译了两个主要的Core,这两个非常慢),之后
又出错了
(3) WebKitSystemInterface.h filenot found
直觉告诉我还去刚才的<webkit主目录>下的WebKitLibraries文件夹下找,果然,又看到了WebKitSystemInterface.h,果断又复制到<webkit主目录> / WebKitBuild/<Configuration>/usr/local/include目录下; 默认情况下,Configuration为Debug;
复制完之后,我留了一个心眼,多看了这个目录几眼,我去,居然还有个
libWebKitSystemInterfaceMavericks.a,直觉告诉我,这货一定还会出错,索性,将其直接复制到<webkit主目录> / WebKitBuild/<Configuration>/usr/local目录下; 默认情况下,Configuration为Debug;
六、点击Run编译并运行,这次就可以正常编译了(我是这样的,也可能会出现别的错误自行解决,大多数都会是这种路径的问题),编译过程非常漫长,请耐心等待,另外,编译完之后<webkit主目录>会变得非常庞大。