Google V8引擎編譯記錄

來源:互聯網
上載者:User

準備工作

1.Python 2.6.x,編譯V8必備,官方網站被牆了,不過搜尋一下,很多下載,包括天空軟體園,華軍等都有。

2.Scons,與Make工具類似的編譯工具,最新版本是2.1.0,官方網站有下載。本身之前的V8版本是可以不用這個的,在從SVN遷出來的原始碼下tools檔案夾裡有Visual Studio的Project,不過最新的版本取消了,根據官方網站的Build Guide,推薦的是使用Scons來編譯V8(其實這個工具很方便的,比Make直觀的多,也簡單的多)。

3.TortoiseSVN,這個就不說了,相信基本都有安裝,官方網站下載。

4.V8Engine原始碼,從Google的SVN當中Check Out出來,最新版本地址。

 

編譯

注意:先安裝Python,再安裝Scons,安裝了Python後,記得設定環境變數,否則無法正常通過編譯。Scons也需要設定環境變數,它的目錄是Python安裝目錄下的Scripts。

1.啟動CMD控制台,導航到下載的v8原始碼根目錄,就是有一個SConstruct檔案(Scons就是根據它來編譯器的)的目錄。

2.編譯參數(注意要修改Visual Studio的安裝目錄):

scons arch=ia32 env="PATH:F:\Program Files\Microsoft Visual Studio 10.0\VC\bin;F:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;F:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools,INCLUDE:F:\Program Files\Microsoft Visual Studio 10.0\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include,LIB:F:\Program Files\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib" libary=shared mode=release msvcrt=shared –j4

3.編譯完成後,會在根目錄生產v8.lib,v8preparser.lib,在其他程式中使用V8需要用到這兩個庫檔案以及v8的標頭檔。

 

附:在Javascript.NET中使用V8進行編譯

首先還是從官方網站下載最新版本的原始碼(v4.0)。

解壓後,用VS開啟,先移除對老版本V8(v2.6)的引用(直接刪除解決方案中的V8項目即可)。

之後,在根目錄建立一個Include和Lib檔案夾,把V8的標頭檔放到Include當中,生產的兩個lib檔案放到Lib當中。

開啟項目屬性,在配置屬性-C/C++-常規中的附加元件封裝含目錄中,添加自己建立的Include檔案夾。

在連接器-輸入中的附加依賴項中填入v8.lib,v8preparser.lib的完整路徑(可以用宏來填寫)。

最後開啟JavascriptContext.cpp,在SetParameter和Run(兩個重載)三個函數中加入以下代碼(進入函數第一行添加):

v8::ResourceConstraints rc;int limit = (int)&rc - 500000;rc.set_stack_limit((uint32_t *)(limit));v8::SetResourceConstraints(&rc);

 

這幾行代碼主要是防止出現,嘗試訪問損壞的記憶體balabalabala的錯誤。

最後,編譯即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.