2016-04-25 70 views
2

我使用與Visual Studio 2015年V8 ::隔離::新空訪問衝突

我試圖運行的例子,谷歌已經編譯V8的32位版本4.10.253在: Chrome V8 - Getting Started

但是當我嘗試運行它,我得到:

Exception thrown at 0x00000000 in V8Test.exe: 0xC0000005: Access 
violation executing location 0x00000000. 

我得到這個執行以下時:

Isolate* isolate = Isolate::New(create_params); 

我的項目設置:

拿到項目在調試編譯,我設置了運行時庫:

Multi-threaded Debug /MTd. 

我包括V8包括根據附加包含目錄的目錄。

最後,我包括以下庫:

icuuc.lib icui18n.lib v8_libplatform.lib v8_external_snapshot.lib 
v8_base_3.lib v8_base_2.lib v8_base_1.lib v8_base_0.lib v8_libbase.lib 
winmm.lib 

任何人都知道我做錯了嗎?提前致謝。

回答

1

好的,我覺得很愚蠢。我沒有讀完本教程的其餘部分。您必須複製存儲可執行文件的所有.bin文件。具體做法是:如果你不

natives_blob.bin 
snapshot_blob.bin 

V8會崩潰在隔離::新。

+1

這就是爲什麼我使用no_snapshot。它在啓動時速度較慢,但​​您不必處理正確的bin文件 - 基於debug/32 vs 64位/版本的V8/etc進行更改。更容易等待額外的.1s左右(當我測量),而不是再次處理它們。請不要鏈接external_snapshot和鏈接no_snapshot。 – xaxxon

+0

不錯!謝謝你的提示,我將不得不放棄一次。 – Someone13

+1

另外,如果你不是,請確保你正在開發針對調試版本(make x64.debug) - 在事件崩潰之前它會提供更好的失敗信息。這不是很好,但它更好一點。另外,我認爲堆棧軌跡也更好一些。 – xaxxon