今天心血來潮, 下載了 v8,,而後就想着用vs編譯html
可是你們都苦惱的是 v8並不直接提供 vs用的項目文件和解決方案(.sln)node
因而,在網上搜來搜去, 折騰來折騰去的;python
終於一點一點的嘗試, 能夠執行 python gypfiles\gyp_v8.py -Dtarget_arch=x64git
可是網上搜到的都是 python build\gyp_v8.py -Dtarget_arch=x64github
可我git clone 的沒有build文件夾啊, 好歹根據 svn
https://github.com/v8/v8/wiki/Building-with-Gyp-(deprecated)#visual-studio工具
說的 在gypfiles目錄找到了,可是執行命令,cpu瘋狂一陣,以後 就一個out的目錄,什麼 sln,vcxproj 一個都沒有看到visual-studio
鬱悶了,測試
,ui
,
而後就一路鬱悶,處處翻騰, 看不一樣的,相關的 甚至是名詞解釋
直到下午4點多, 在網上搜索"gypfiles\gyp_v8" ,在列表裏看到 node.js 甚至下載了其源代碼用裏面的 v8 測試, 也不行, 最後後仍是不了了之
而後又翻了下搜索結果,看到 Gyp語法規則參考 & 工具的使用 (注1) , 誒!? 看看唄,也許能找到什麼有用的東西呢
因而點進去瀏覽了, 當最後看到 gyp命令行 參數 --f 時,這個或許有用呢, 趕快測試,
--fmsvs 報錯 不認識的參數,
改一下
-f msvs
哈,哈哈 有別的輸出, 找不到testing下的文件!!! 貌似有戲,
看看, texting目錄,
唉!!! 那不是是 vcxproj 文件麼, 那不是 sln文件麼!!!!!!!!
看看 v8 項目文件產生沒,
v8/沒有
v8/build/ 沒有
v8/gypfiles/ 哦哦, 有了!!! 有了 :)
v8/src/ 也有v8.sln等項目文件了!!!!
大功告成!
折騰我快一天了有沒有啊!!!!
下面附上我總結的步驟吧
1. 下載安裝 Python 2. 下載 gyp 並安裝 2.1 下載 gyp , 到一個目錄 git clone https://github.com/svn2github/gyp 也能夠在 v8 附屬項目中下載(見3.1) 2.2 安裝 gup 在 gyp 目錄 執行 python setup.py install 3 下載 v8 及附屬項目 3.1 下載 v8 git clone https://chromium.googlesource.com/v8/v8 git clone https://chromium.googlesource.com/external/gyp.git ./v8/tools/gyp //須要安裝 gyp ^python setup.py install^ git clone https://chromium.googlesource.com/chromium/deps/icu.git ./v8/third_party/icu //^icu 比較大(125M)^ git clone https://chromium.googlesource.com/chromium/src/tools/clang.git ./v8/tools/clang git clone https://chromium.googlesource.com/external/github.com/google/googletest.git ./v8/testing/ rename googletest gtest //更名 git clone https://chromium.googlesource.com/chromium/deps/cygwin.git ./v8/third_party/cygwin
//git clone https://chromium.googlesource.com/chromium/src/build.git ./v8/build 4. 建立VS項目工程 4.1 設置環境 變量 set DEPOT_TOOLS_WIN_TOOLCHAIN=0 set GYP_MSVS_VERSION=2015 //set GYP_GENERATORS=ninja //不須要 //set GYP_DEFINES=component=shared_library //這個也不須要 4.2 在 v8 目錄執行,建立VS解決方案 python gypfiles\gyp_v8.py -Dtarget_arch=x64 -f msvs
生成DLL
python gypfiles\gyp_v8.py -Dtarget_arch=x64 -Dcomponent=shared_library -f msvs
生成lib
python gypfiles\gyp_v8.py -Dtarget_arch=x64 -f msvs
-f msvs <--- 忽然讓我想到了一個詞語: 畫龍點睛 !
而後編譯, 也是有個坑, 一堆錯誤:
fatal error C1083: 沒法打開包括文件: 「base/trace_event/common/trace_event_common.h」: No such file or directory
google的和github上都沒有這個文件,找不到
最後想一想, 下載的node.js 裏有v8 因而找找 還真有,
因而整個base目錄(其實裏面也就這麼一個文件)直接拷貝到v8目錄下,與src目錄同級
全部v8開頭的項目的屬性都把 靜態庫 改爲 動態庫,包括 icuuc 和 icui18n , 再編譯
很是耗時間, 我四核的, 繼續等吧,
還有個:
2>parsing\parser.cc(1540): error C2220: 警告被視爲錯誤 - 沒有生成「object」文件
2>parsing\parser.cc(1540): warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存爲 Unicode 格式以防止數據丟失
致使後面幾千個錯誤.... shit,也是個坑, 受不了了,直接取消了編譯(Ctrl+Break) ...
看下, parser.cc 文件編碼是Unicode的, 其餘的都是ansii的編碼, 反正裏面也只有英文字符,不在意編碼, 改爲和其餘同樣 ansii 編碼了
編譯很慢, 可是結果仍是出現不少錯誤,都是差很少的錯誤
C2220 的錯誤, 和其餘 "note: 參見對正在編譯的類 模板 實例化"的警告 去掉 編譯的參數 /WX , 更改警告等級甚相當閉警告,都沒有用,
先這樣吧, 等哪天有興趣了在折騰....
若是你知道怎麼解決,請告訴我,謝謝!!!
本文地址:http://www.cnblogs.com/lzpong/p/5888289.html
[注1: Gyp語法規則參考 & 工具的使用:http://www.cnblogs.com/x_wukong/p/4829598.html]