Visual Studio 2008編譯webkit


 

 

自己編譯webkit,遇到了一些問題進行了總結,放到這里和大家分享一下:

1.編譯前的准備工作一

DirectX SDK(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=10084) (這個文件少了 webcore會編譯不通過),

VS需要做一下升級  安裝 VS90SP1  以及補丁 KB945140,KB960075,KB957912,KB967631

下載google提供的 cygwin (webkit.org/repository/webkit/trunk/Tools/CygwinDownloader/cygwin-downloader.zip) cygwin中有100多個軟件要讓他全部下載完,不然后面的工作會出現問題,如果你的機器已經安裝了perl等,可能會和它自帶的沖突

Quicktime SDK(http://developer.apple.com/quicktime/download/)需要申請賬號才能下載

下載並安裝以上文件到c盤

下載源碼---編譯前的准備工作二

http://nightly.webkit.org/  放到C:\cygwin\home\ 下 在Cygwin中使用tar -xjvf WebKit-r112532.tar.bz2 ,然后重命名 WebKit

 

下載一些庫---編譯前准備工作三

下載

WebKitSupportLibrary和WebKitAuxiliary:http://developer.apple.com/opensource/

將上面文件(下載后不用解壓)放到 C:\cygwin\home\WebKit 下,因為我的cygwin是建立在c盤下的

 

2.設置環境變量 ---編譯

將WEBKITLIBRARIESDIR設定為  WebKit 源代碼目錄\WebKitLibraries\win路徑; 將WEBKITOUTPUTDIR 設為你打算要存放obj和dll 的輸出文件夾,當然這個文件夾所在的分區至少要有4G的剩余空間。

說明: WEBKITOUTPUTDIR可以隨便設,如果要保持和其他Build方式的一致性,那么就設置成為%WEBKIT_DIR%\output,這里%WEBKIT_DIR%是Webkit文件夾的絕對路徑。WEBKITLIBRARIESDIR必須設置為%WEBKIT_DIR%\WebKitLibraries\win文件夾。

例如:

PATH c:\cygwin\bin
WEBKIT_DIR C:\cygwin\home\WebKit (我的WebKit 放在了home目錄下)
WEBKITLIBRARIESDIR %WEBKIT_DIR%\WebKitLibraries\win
WEBKITOUTPUTDIR %WEBKIT_DIR%\WebKitBuild

 

運行腳本---編譯

打開cygwin  在 WebKit/webkit/Tools/Scripts/下執行腳本

perl  update-webkit

perl build-webkit    運行時出現 如下問題 

*************************************************************
Cannot find '/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/VCExpress.exe'
Please execute the file 'vcvars32.bat' from
'C:\Program Files\Microsoft Visual Studio 8\VC\bin\'
to setup the necessary environment variables.
*************************************************************
Died at /home/WebKit/Tools/Scripts/webkitdirs.pm line 1551.

不用關心 ,不影響正常編譯

 

編譯過程-編譯

a)         用VS打開WebKit/WebKit/win/WebKit.vcproj/WebKit.sln,選擇正確的Configuration,也就是Debug和Release,選擇Debug即可。(切記不要選擇debug_all)

b)        選擇DumpRenderTree, QTMovieWin, WebCore, WebKit, WinLauncher等所有項目(把c++項目的屬性都設置一遍)的項目屬性,左側選擇“C/C++”,將右側的“Treat Warnings As Errors”(“將警告視為錯誤”)設置為“No”。這個必須設置。否則編譯時會報錯。

c)  設置警告級別,不輸出報警

d)      右擊WinLauncher,選擇“設為啟動項目”,然后F7,開始編譯。

 

編譯后會出現如下錯誤

error C2001: 常量中有換行符
 error C2001: 常量中有換行符
 fatal error C1057: 宏展開中遇到意外的文件結束

 

到相應的行 刪除全角符號 "" 即可

之前

RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    return formatLocalizedString(WEB_UI_STRING("Look Up “%@” ", "Look Up context menu item with selected word"), selectedCFString.get());
#else
    return WEB_UI_STRING("Look Up ”<selection>" ", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));

之后改為

RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    return formatLocalizedString(WEB_UI_STRING("Look Up %@ ", "Look Up context menu item with selected word"), selectedCFString.get());
#else
    return WEB_UI_STRING("Look Up <selection> ", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));

然后全部清除,重新編譯 即可順利通過

下載安裝 safari

編譯完成后,需要將C:\Program Files\Common Files\Apple\Apple Application Support下的一些庫文件拷貝到C:\cygwin\home\WebKit\WebKitBuild\Debug\bin目錄.  

運行MiniBrowser.exe

 

 

運行WinLauncher.exe

 

 

試試吧 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM