windows vs2017環境下編譯webkit 2
WebKit在Windows上
- 安裝開發工具
- 設置Git存儲庫
- 設置支持工具
- 構建WebKit
- 安裝Cygwin(可選)
- 得到一個崩潰日誌
本指南提供了用於構建WebKit的指令在Windows 8.1沒有Cygwin(AppleWin港口WebKit)。 你可以選擇安裝Cygwin運行測試。
安裝開發工具
首先安裝以下程序和設置您的環境:
- Visual Studio。 (確保你包括c++支持。) https://www.visualstudio.com/en-us/products/visual-studio-community-vs
- ActiveState的Perl。64位很好。
- ActiveState的Python。 確保它的版本2。 而不是3. x。 64位很好。http://www.activestate.com/activepython/downloads 確保你不從python.org下載它,因為我們硬編碼可執行文件的名稱為“python2.7”和python.org python不包括一個可執行的名字。
- Ruby。64位很好。 http://rubyinstaller.org/
- 野牛。 http://gnuwin32.sourceforge.net/packages/bison.htm 確保安裝路徑沒有空間,因為野牛不正確引用路徑時通過他們m4。
- Gperf。 http://gnuwin32.sourceforge.net/packages/gperf.htm
- Flex。 http://gnuwin32.sourceforge.net/packages/flex.htm
- CMake。 https://cmake.org/download/
- Git。 http://www.git-scm.com/download/win 註意:確保您選擇的選項“使用Git Windows命令提示符。 “這是因為它安裝一個sh.exe在你的路徑,如果sh.exe有空間的位置,使被搞糊塗了。 當我安裝這個,我不受控制的所有選項。
- iTunes。 這只是AppleWin所需的端口,不是WinCairo端口。
- “嗯哼”字體,用於測試。 http://www.w3.org/Style/CSS/Test/Fonts/Ahem/
- (可選:如果你打算與Subversion補丁)Subversion。 http://sourceforge.net/projects/win32svn/
- (可選:加快構建過程)忍者構建。 https://github.com/ninja-build/ninja/releases
確保所有剛才安裝的程序(除了Visual Studio和iTunes)是通過你來訪問 美元的路徑
http://www.itechtics.com/customize-windows-environment-variables/ 你可能需要修改後重新啟動 美元的路徑
新殼前將更新後的變量。
如果您是在代理,一定要設置 HTTP_PROXY
和 HTTPS_PROXY
環境變量。
設置Git存儲庫
git告訴你的名字。
> git config --global user.name "John Smith"
告訴git你的電子郵件地址。
> git config --global user.email "[email protected]"
下載一個克隆存儲庫。
> git clone <git://git.webkit.org/WebKit.git> > cd WebKit
(可選:如果你打算與Subversion補丁)
自動配置本地克隆遵循Subversion:
> python Tools\Scripts\webkit-patch setup-git-clone
設置支持工具
下載WebKit支持庫源代碼樹的根 https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html如果文件是正確命名,命名WebKitSupportLibrary.zip。 不提取其內容。 這個檔案包含一個SDK(僅標題)Windows版本的蘋果軟件堆棧(比如CoreGraphics)。
此外,您需要下載 https://developer.apple.com/opensource/internet/WebKitAuxiliaryLibrary.zip
> cd Tools\Scripts
> perl update-webkit
如果上面的命令要求您重啟你的機器,這樣做。
註意,這個命令將自動下載 WebKitAuxiliaryLibrary.zip 從蘋果和提取到你的樹(WebKitLibraries文件夾內)。 這個檔案包含的Windows版本的所有公共圖書館WebKit取決於(如libxml2)。 還請註意,該命令可能設置環境變量。
構建WebKit
> perl build-webkit
註意,這個命令將自動提取WebKitSupportLibrary。 步中下載zip(6)到你的樹(WebKitLibraries文件夾內)。
安裝Cygwin(可選)
您可以構建與Visual Studio 2015和Visual Studio 2015 Community Edition。
使用默認選項安裝。
Cygwin是公用事業為Windows的集合,不僅包括Subversion的客戶,但也需要額外的工具來構建
WebKit的來源。 我們取得了一個下載器可以自動收集所有必需的包。
下載 cygwin-downloader.zip 。 提取一些文件夾和檔案的內容開始 cygwin-downloader.exe
從文件夾中。 這將下載所需的所有Cygwin包。 當所有的包已經完成下載,Cygwin安裝程序將會啟動。 選擇 安裝從本地目錄 ,然後單擊 下一個 直到安裝完成。 如果您正在運行Vista,安裝程序無法自動啟動,你將不得不手動啟動Cygwin 安裝程序
。
[…]
)不是URL的一部分,但是用來表示可選元素的URL。
註意: Vista可能沒有警告你,Cygwin安裝正確。 忽略這個警告,告訴Vista,安裝成功。
警告: 如果您正在運行Vista和Windows 7,Cygwin可能難以實現 叉
(POSIX函數經常用於啟動子進程,需要許多的WebKit構建工具)。 為了使 cygwin1.dll
成功實現叉最好是如果沒有DLL加載在父進程在運行時重新安置。 達到這一點的方法之一是變基所有 cygwin dll 除外 cyglsa64.dll
和 cygwin1.dll
基地地址,讓他們不要重疊在內存中。
為了變基所有cygwin dll rebaseall
cygwin提供的腳本安裝的 本
目錄(通常是 C:\cygwin\bin )。 該腳本必須逃離 ash.exe
(在相同的目錄中),而沒有其他應用程序運行cygwin。
ash.exe
命令行編輯功能非常有限所以剪切和粘貼命令行。
的 路徑
環境變量可能不包含的 / bin
目錄默認腳本應該推出 /bin/rebaseall 。
如果 rebaseall
是抱怨未能寫入一個Windows臨時目錄(即 /cygdrive/c/Users/you/AppData/Local/Temp
),修復文件夾的權限(即 /cygdrive/c/Users/you/AppData/Local/Temp )或改變TMP環境變量,使之指向一個目錄與適當的許可標誌
(例如: export TMP=/tmp
)。 註意: 變基過程可能需要重復包含任何新的庫後來添加的cygwin清單完整cygwin路徑這些庫的文件和傳遞文件 rebaseall
通過 -T fileName 文件名
命令行參數。 下的dll LayoutTests/http/conf
是一個相關的用例。
刪除下面的臺詞 /home/[username]/.bashrc
(if present):
(如果存在):
unset TMP
unset TEMP
會防止撿Windows TMP和臨時環境變量。
如果您是在代理需要做以下允許cygwin svn通過代理(類似步驟可供您的Windows svn):
- 在bash中(Cygwin)運行:
svn的幫助
。 這將創建在您的cygwin主目錄文件.subversion/servers
.服務器
。 - 編輯上面提到的文件,按照文件中的指令設置你的代理設置。
安裝Perl
下載Perl 5.18(或更新) activestate.com 並安裝它。
安裝Python
下載Python 2.7.8 activestate.com 並安裝它。
安裝Ruby
下載Ruby 2.0.0 rubyinstaller.org 並安裝它。
安裝php 中,我們使用以下步驟(你需要這個運行http布局測試):
1
cd /usr/local/bin
2
wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
3所示
chmod a+x apt-cya
4所示。 改變的第341行 apt-cya
腳本
wget -nc $mirror/../$install
5。 安裝php
apt-cyg -m ftp://sourceware.org/pub/cygwinports/x86 install php
可選 :64位Windows的熱修復補丁(Windows 7或更早)禁用用戶模式調濾波器為例外
沒有 976038年熱修復補丁 在回調例程可能拋出異常,不會導致崩潰,但離開應用程序處於不一致的狀態,可能會導致崩潰。 你需要點擊“視圖和請求熱修復補丁下載”並填寫表單。 下載鏈接熱修復補丁和密碼將發郵件給你。
Cygwin的代碼
- 打開一個Cygwin殼牌在桌面上雙擊Cygwin圖標啟動一個新的Shell。
- 你可以 下載一個快照 WebKit的源代碼樹。 這是每日更新。
類型這些命令來查看WebKit源樹:
tar jxvf WebKit-SVN-source.tar.bz2
cd webkit
註意存檔結帳使用一個HTTP連接。 我們建議使用HTTPS而不是運行以下命令:
svn switch --relocate http://svn.webkit.org/repository/webkit/trunk https://svn.webkit.org/repository/webkit/trunk
另外,輸入這個命令查看WebKit源樹:
svn checkout https://svn.webkit.org/repository/webkit/trunk WebKit
- 安裝WebKit支持庫
下載WebKit支持庫 源代碼樹的根( C:\cygwin\home\<username>\WebKit )。
如果文件是正確命名,重命名它
WebKitSupportLibrary.zip
。 不提取其內容。 -
運行
./Tools/Scripts/update-webkit
腳本更新源代碼樹。如果你下載tarball,這將帶來最新的。 Windows用戶必須執行該命令後,首先獲取代碼,因為它會下載額外的庫,需要構建。
一旦你有了一個當前的樹,是下一步 建築WebKit 。
得到一個崩潰日誌
Windows錯誤報告(回答)已經被集成到操作系統。 默認情況下,微軟Windows上傳崩潰日誌,但不保存一個本地副本。 這是通過註冊表配置。
1 將以下文本保存到一個文件中命名 wer.reg
: Windows註冊表編輯器5.00版本
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Wind
2 雙擊文件從Windows Explorer和肯定地回應任何提示。
3 重新啟動
下次旅行(或任何其他應用程序)崩潰,崩潰信息將寫入一個文件夾內 %LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue 檢查修改日期,以確保您使用正確的文件。 一定要在錯誤報告中包含以下文件:
- WER_xxxx_.tmp.mdmp
- 這是最重要的文件。 裏面包含崩潰轉儲,可以打開Visual Studio調試器或其他窗口。
- WER_xxxx_.tmp.version.txt
- 包含操作系統版本和其他硬件的信息。
- WER_xxxx_.tmp.appcompat.txt
- 列出所有的dll加載時的崩潰的版本信息。
windows vs2017環境下編譯webkit 2