windows下使用VS2015編譯V8 JavaScript引擎(v5.5 - 2016/09)

今天心血來潮, 下載了 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]

相關文章
相關標籤/搜索