使用VS2013編譯webkit
阿新 • • 發佈:2019-01-09
環境:
win7_x64、VS2013開始:
一、下載webkit
從網站"https://github.com/WebKit/webkit"下載webkit,我下載的版本最後的修改記錄時間為2015-6-17,解壓到目錄,例如"D:/webkit-master"二、安裝cygwin
下載地址:http://download.csdn.net/detail/dc11223344/8851923,預設安裝在系統目錄,因為編譯webkit時會從系統目錄查詢cygwin,如果沒有安裝在作業系統目錄,則需要將cygwin\lib加入環境變數path中,然後將專案中的%SystemDrive%\cygwin\bin刪如果你在安裝cygwin之前獨立安裝了python、請先將python解除安裝,由於最新版本的webkit使用python一些比較新的庫,所以對python的版本也會有要求,建議2.7.0以上版本;開啟cygwin\lib\ruby\2.2.0目錄,新建空白檔案rubygems.rb,否則執行ruby,會提示找不到檔案,在cygwin命令提示符視窗下執行以下命令,可以測試安裝情況which perl
which python
which ruby
三、安裝webkit依賴庫
1. DirectX SDK下載,並安裝2. 下載Safari,並安裝3. 下載WebKitAuxiliaryLibrary.zip和WebKitSupportLibrary.zip,將win目錄解壓到“D:/webkit-master/WebKitLibraries/win"目錄四、設定環境變數
1. WEBKIT_DIR D:/webkit-master2. WEBKITLIBRARIESDIR %WEBKIT_DIR%/WebkitLibraries/win3. WEBKITOUTPUTDIR %WEBKIT_DIR%/build五、更新檔案更新時間
更新create_regex_tables、Keywords.table檔案更新時間,開啟create_regex_tables和更新create_regex_tables、Keywords.table檔案,刪除一個字元後再新增該字元,然後儲存即可修改更新時間,在WebKit專案中,部分.h、.cpp和.idl檔案是由.in、.table、.json、.css等檔案生成的,如果這些檔案的更新時間早於這些.h、.cpp檔案,可能不會重新生成檔案,會出現一些變數定義沒有找到的錯誤(例如maxTokenLength等等)。六、編譯webkit
1. 編譯"WTF Projects"專案
1. 編譯"WTFGenerated"工程
由於我的cygwin不是安裝在系統目錄下,所有要做一些修改,如果你將cygwin安裝在系統目錄則不需刪除"%SystemDrive%\cygwin\bin\",開啟”屬性“\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改為which.exe(我在前面將cygwin\bin目錄新增到了path中,可以which.exe直接訪問),開始編譯。
2. 編譯工程WTF工程:
在編譯工程前,我們需要修改#ifndef U_DISABLE_RENAMING
#define U_DISABLE_RENAMING 1
#endif
修改為
#ifndef U_DISABLE_RENAMING
#define U_DISABLE_RENAMING 0
#endif
2. 編譯“JavaScriptCore Projects”專案
1、編譯"LLIntOffsetsExtractor"工程-> LLIntOffsetsExtractor.exe
2、編譯"LLIntAssembly"工程->LLIntAssembly.h
開啟“屬性“\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改為which.exe,理由上面以說明3、編譯"LLIntDesiredOffsets"工程->LLIntDesiredOffsets.h
4、編譯"JavaScriptCoreGenerated"工程
5、編譯"JavaScriptCore"工程
3、編譯”WebCore Projects“專案
1、編譯"WebCoreGenerated"工程
開啟“屬性“\"NMAKE",將%SystemDrive%\cygwin\bin\which.exe修改為which.exe,理由上面以說明2、編譯”WebCore“工程
錯誤:..\platform\LocalizedStrings.cpp(250): error C2001: 常量中有換行符,將"Look Up “%@”"替換為"Look Up \"%@\""4、編譯"WebKit Projects"專案
1、編譯"Interfaces"工程
開啟"InterfacesPreBuild.cmd"和"InterfacesPostBuild.cmd"檔案,刪除"%SystemDrive%\cygwin\bin\",刪除WebKitBuild\Debug\buildfailed檔案2、編譯"WebKit"工程
5、編譯”WinLauncher Projects“專案
1、編譯”WinLauncherLib“工程
開啟”WinLauncherLibPreBuild.cmd“檔案,刪除"%SystemDrive%\cygwin\bin\"2、編譯"WinLauncher"工程
開啟”WinLauncherPreBuild.cmd“檔案,刪除"%SystemDrive%\cygwin\bin\";開啟"DLLLauncherMain.cpp"檔案,修改appleApplicationSupportDirectory函式為static wstring appleApplicationSupportDirectory()
{
// 表示從當前可執行檔案目錄查詢依賴的Safari的dll
return L"./";
}
七、除錯webkit
將Safari\Apple Application Support下的一些dll拷貝到WinLauncher.exe目錄下,執行WinLauncher.exe。
最後說一下編譯webkit的體會,第一次編譯是wke庫,在今年3月份,每天晚上擠出時間,斷斷續續用了3個星期才成功;第二次編譯webkit,是在端午節的時候,用了三天,終於在虛擬機器下編譯成功,最後結合虛擬機器下的經驗,於是又在本機編譯了一遍,才有了此文。