Mac OS X编译最新webkit(2013-03-15)
来源:互联网 发布:图像算法笔试题 编辑:程序博客网 时间:2024/06/18 14:26
安装Xcode,4.5版本或以上。必须要安装的方式,不能copy。
xcode菜单Xcode->Preferences...->Downloads->Components栏选择Command Line Tools的Install。不做这步的话,可能会出现warning:“The specified SDK “Current OS X” does not appear to have all of the necessary headers installed. ”。该warning会导致提示各种头文件找不到的错误,例如Platform.h中的<Availability.h> 。
命令行或者CornerStone,
svn checkout http://svn.webkit.org/repository/webkit/trunk
或者直接download代码压缩包
http://nightly.webkit.org/files/WebKit-SVN-source.tar.bz2
打开WebKit.xcworkspace。先设置xcode的workspace编译中间目录。
Xcode的菜单File->Workspace Settings->Build->Derived Data Location一栏选择Workspace-relative,并输入WebKitBuild->Done
编译。
编译过程中可能会出现错误,这些错误都发生在脚本的运行里,一般不会在代码文件中有错误。
我遇到的两个脚本内错误:
1. 分析读取Keywords.table时,多了个空的末行。把空末行删除即可
2. 通过gperf生成代码错误。错误的文件是ColorData.gperf,从错误提示中完全看不出真实原因。原因可能是文件权限或编码设置不对。先copy该文件的内容,删掉该文件,再新建一个同名文件,粘贴原来的内容,保存,这样就ok了。
在xcode中开启debug模式,点击run,即会启动safari并attach上去。然后,随你加断点吧。
由于mac safari实际会有多个进程来处理网页,部分代码并非在safari进程中执行,而是在WebProcess进程中。所以,启动safari后,可以再attach一个进程。
xcode菜单Product->Attach to Process->选择WebProcess。 此后,一些原本不会进去的断点也会进了。例如 FrameView.cpp的paintContents函数。
也可以在xcode toolbar的target栏里选择All Source (target WebProcess) 直接启动到WebProcess
还可以不用safari作为target,使用MiniBrowser。toolbar的target菜单->Edit Scheme->Info->Executable->MiniBrowser.app->OK。设置后,点击run会运行MiniBrowser。
自己写一个Mac OS X版的浏览器,应该能更好理解webkit
- Mac OS X编译最新webkit(2013-03-15)
- Build WebKit on Mac OS X 10.9
- Mac OS X编译SDL
- mac os x 编译hadoop
- 安装编译和使用OpenCV(Mac OS X 10.10)
- Mac OS X下(Ubuntu虚拟机)编译Linux内核
- mac os X 下编译jrtplib
- Mac OS X下编译Android源码
- Mac OS X 下编译android源码
- MAC OS X下编译tesseract
- mac os X 下编译 chromium
- MAC OS X上编译ffmpeg
- Mac os x下编译安装Qt
- Mac OS X 10.9编译Android源码
- Mac OS X下编译Android源码
- Mac OS X 下编译使用 LAJP
- mac os X 下编译 chromium
- Mac OS X 下编译安装 Nginx
- 阿联酋·实拍迪拜世界最大最奢侈购物的天堂
- uva 1045 - The Great Wall Game(KM)
- Error
- WindowManager.LayoutParams(下)
- 未来音乐的格式——Opus格式
- Mac OS X编译最新webkit(2013-03-15)
- 在windows和mac上以特定ua启动chrome的脚本
- 利用Objective-C运行时hook函数的三种方法
- Xcode3创建和使用iOS的dylib动态库
- 二进制/十六进制转浮点数的编程(互转类似)
- Python的一些环境配置
- iOS私有API(一) -[UIApplication _cancelAllTouches]
- iOS私有API(二) UIGestureRecognizerDelegate的两个函数
- asp.net 超时问题