鼎鼎大名的chrome出世了,迫不及待的一睹芳容。版本還不成熟,功能不夠完善,等等。這也與我的最初的想法差別不大。其實本身就瀏覽器多我而言吸引力不是太大,關鍵在於可以逐步的經曆一個瀏覽器的成長才是最令人興奮的事情。說個不是很恰當的例子,養孩子其實不是希望一下子就能到18歲,那樣太沒趣了,成長的過程才是最讓人留戀的,可惜我沒有孩子,這個玩意也不是我的孩子, :P~
不再廢話,從下載開始把,起初用svn下載,一個字:慢。而且一古腦的下載,整整下了好幾天,還沒有完成,幸運的是找到一個打包的版本,總算搞定。
最初的vs環境是2005,直接開啟sln檔案編譯看看,似乎打不開,未知原因,檔案比較了下,可能是分行符號的問題,但幸運的是從svn的版本拷貝過來則可以使用。
編譯,錯誤錯誤,error無數。然後仔細尋找原因,主要缺一個vsstyle.h的標頭檔,修改WINVER和_WIN32_WINNT的編譯參數為0x0501也不行,原來需要 windows sdk 2008 環境,官方下載,居然有一個G,算了,還是直接安裝個vs2008吧。
於是又經過了不少的折騰--ghost還原原來的乾淨系統,重新安裝vs2008。哎,區區兩句話,折磨阿,特別是那些大量的工作必須軟體。。。
重新編譯,都可以通過,但是遇到了一個標頭檔的編譯警告,導致日誌系統不停的輸出,也太慢,於是取消編譯,修改再來,下面是我的檔案修改處,當然前面修改的WINVER/_WIN32_WINNT也要還原:
chromium/src/build/SConscript.main:
CCFLAGS = [
'/wd4503',
'/wd4819',
'/wd4396',
],
chromium/src/build/internal/essential.vsprops:
DisableSpecificWarnings="4503; 4819; 4396"
解釋就不用說了吧。繼續。
這次終於基本都編譯完成,說基本是因為還有兩個錯誤,但這兩個錯誤由於不在核心調用模組,所以也就可以程式的單步運行閱讀了。這兩個錯誤分別是:memory_watcher.cc和call_stack.cc,都和std::map相關,尋找原因,無果,在一個網站上看到認為是一個vs的bug,但到微軟的問題列表上又認為不是,而我對stl基本上一知半解,所以也就直接作罷,把執行個體化的總共三個變數部分注釋掉,省得礙眼。(有高人路過可以貼一下解決辦法),下面是其部分:
29>call_stack.cc
29>C:/Program Files/Microsoft Visual Studio 9.0/VC/include/xtree(52) : error C2664: “std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,_Mfl>::_Tmap_traits(_Pr,_Alloc)”: 不能將參數 2 從“PrivateHookAllocator<T>”轉換為“PrivateHookAllocator<T>”
29> with
29> [
29> _Kty=int32,
29> _Ty=std::string,
29> _Pr=std::less<int32>,
29> _Alloc=PrivateHookAllocator<int32>,
29> _Mfl=false
29> ]
其實這裡說到我的一個想法,從學習c++開始,就非常討厭這樣的錯誤/警告提示,沒有一點美感可言,而且vs本身對這個問題的提示也感覺不是那麼直觀。
閑話不提,直接運行chrome.exe,嘿嘿。直接輸入地址,非常好。預期的整體編譯環境目的已經達到。目前正在對chrome的整體架構進行學習,可惜doxygen的功能還不夠強大。需要逐步的進行閱讀。。。來日方長啊。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/martmy/archive/2008/09/17/2942712.aspx