Mac OS X 下编译webkit全过程

系统信息: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主目录>会变得非常庞大。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。