VS2005+cygwin编译WebKit
首先,如果按照WebKit官網上步驟是可以編過去的,但是要求VS2005默認裝在C:\Program Files,cygwin默認裝在C:\,QuickTimeSDK默認裝在C:\Program Files?
如果選擇安裝在其他地方,同志們,苦日子就來了。。。
1. 安裝VS2005英文版
2. Install?Microsoft Visual Studio 2005 Team Suite Service Pack 1.
3. Install?Visual Studio 2005 Service Pack 1 ATL Security Update.
4. Install the following hotfixes to improve Visual Studio's performance and responsiveness:
? ? 到cygwin官網下載setup.exe
? ? 下載Packages?
? ? ? ? ? ? "Download Without Installing" -> "Direct Connection" ->
? ? ? ? ? ? ->?一般選擇http://mirrors.163.com鏡像 ,勾選Devel和Libs "Install"
? ?? ? ? ? ?-> 但是curl這個包需要ftp://mirrors.xmission.com ,勾選Net->curl "Install"
? ? ? ? ? ? -> "Install from Local Directory"
6.?Install?QuickTime SDK
7.Install DirectX SDK??February 2010 DirectX SDK? (隨意選擇安裝位置,它會自動創建系統變量DXSDK_DIR)
? ? ??fatal error C1083: Cannot open include file: 'd3d9.h': No such file or directory
8. 取WebKit代碼Nightly Build?, 放到home目錄 : webkit使用svn下載后差不多有1G多,這里面的大部分代碼是測試代碼,由于網速慢加上現在不需要這些測試代碼,使用Nightly Builds,下載后只有十幾兆。
9. 下載WebKit Support Libraries?, 放到WebKit根目錄
10. 運行Tools/Scripts/update-webkit ,會下載一些頭文件和庫(到WebKitLibraries/win),并自動創建以下兩個系統變量
? ? ? ??WEBKITLIBRARIESDIR = E:\Program Files\cygwin\home\chenhao\WebKit-r135516\WebKitLibraries\win
? ? ? ??WEBKITOUTPUTDIR = E:\Program Files\cygwin\home\chenhao\WebKit-r135516\WebKitBuild
11.?修改VS2005路徑,?Tools/Scripts/webkitdirs.pm
? ? ? ? ?#$vsInstallDir = File::Spec->catdir($programFilesPath, "Microsoft Visual Studio 8");
? ? ? ? ?$vsInstallDir = File::Spec->catdir("E:\\Program Files", "Microsoft Visual Studio 8");
12. 修改QuickTime SDK路徑, Source/WebCore/WebCore.vcproj/QTMovieWinCommon.vsprops
? ? ?"VCCLCompilerTool"
? ? ? ? ? ??$(ProgramFiles)/QuickTime SDK/cincludes
? ? ? ? ? ?E:\Program Files/QuickTime SDK/cincludes
? ? ??fatal error C1083: Cannot open include file: 'CFData.h': No such file or directory
? ? ?"VCLinkerTool"
? ? ? ? ? ??$(ProgramFiles)\QuickTime SDK\Libraries
? ? ? ? ? ? E:\Program Files\QuickTime SDK\Libraries
? ? ??fatal error LNK1104: cannot open file 'QTMLClient.lib'
13.?運行Tools/Scripts/build-webkit ,它會動態生成一些代碼(stdint.h和stdbool.h等到WebKitLibraries/win)
? ? ? build-webkit --debug ? ?或者 ? ?build-webkit --release
? ? ? fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory
14.?使用VS2005打開 Source/WebKit/win/WebKit.vcproj/WebKit.sln?
15. 將所有工程 Configuration->"Debug"
16.?所有C/C++工程 Treat Warnings As Errors 設為"No"
? ? ?error C2220: warning treated as error - no 'object' file generated
17.修改cygwin路徑?
(1)所有非C/C++工程Configuration->NMake->Build Command Line,Rebuild All Command Line和Clean Command Line?
? ? ?set PATH=%SystemDrive%\cygwin\bin;%PATH%
? ? ?set PATH=E:\Program Files\cygwin\bin;%PATH%?
? ? ?fatal error U1077: 'touch' : return code '0x1'??(cygwin路徑不對, .make文件找不到touch命令。)
(2)部分C/C++工程的PreBuild.cmd
? ?Interfaces工程?Source\WebKit\win\WebKit.vcproj\InterfacesPreBuild.cmd
? ? ?set PATH=%SystemDrive%\cygwin\bin;%PATH%
? ? ?set PATH=E:\Program Files\cygwin\bin;%PATH%
? ?WebKitLib工程?Source\WebKit\win\WebKit.vcproj\WebKitLibPreBuild.cmd
? ? ?set PATH=%SystemDrive%\cygwin\bin;%PATH%
? ? ?set PATH=E:\Program Files\cygwin\bin;%PATH%
? ?WebKit工程?Source\WebKit2\win\WebKitPreBuild.cmd
? ??set PATH=%SystemDrive%\cygwin\bin;%PATH%
? ??set PATH=E:\Program Files\cygwin\bin;%PATH%
? 'bash' 不是內部或外部命令,也不是可運行的程序
18. Build Solution (我第一次是按照工程的依賴鏈一個一個編譯的,容易發現哪個工程出錯了,也可以直接Build Solution)
19. 下載Safari?
? ? ?安裝之后將Safari根目錄下的所有dll(PubSubDLL.dll,Safari.dll,SafariTheme.dll,Search.dll和SpellChecker.dll)
? ? ?拷貝到WebKitBuild\Debug\bin目錄。
20. 點擊WinLauncher.exe ,搞定
其他編譯錯誤:
1.?error C2001: newline in constant ? ?Source\WebCore\platform\LocalizedStrings.cpp ?Source\WebCore\platform\LocalizedStrings.cpp
? ??return formatLocalizedString(WEB_UI_STRING("Look Up 鈥?@鈥?, "Look Up context menu item with selected word"), selectedCFString.get());
? ? return formatLocalizedString(WEB_UI_STRING("Look Up“%@”", "Look Up context menu item with selected word"), selectedCFString.get());
? ? return WEB_UI_STRING("Look Up 鈥?selection>鈥?, "Look Up context menu item with selected word").replace("<selection>",?
? ? return WEB_UI_STRING("Look Up “<selection>”", "Look Up context menu item with selected word").replace("<selection>",?
總結
以上是生活随笔為你收集整理的VS2005+cygwin编译WebKit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Activity-Service-Rec
- 下一篇: Android事件处理机制