Mac OS下V8引擎編譯方法

2021-08-08 21:40:00 字數 2490 閱讀 1022

v8 的github位址 :

因為需要訪問到google的伺服器,所以下面做的一切都需要翻到牆外面。翻牆方法自行解決吧。

v8的版本控制是有乙個叫depot_tools的工具維護的,這個東西相當於的將git包了一層。

[具體安裝方法](

mac 下編輯 ~/.bash_profile檔案,在檔案最開頭新增下列**

其中/users/***/documents/git/depot_tools是clone庫後的路徑

export depot_tools=/users/***/documents/git/depot_tools

export path=$depot_tools:$path

儲存環境變數

source ~/.bash_profile
gclient sync
使用gn生成編譯檔案

tools/dev/v8gen.py x64.release
使用ninjia編譯

ninja -c out

.gn/x64.release

(選項)使用py指令碼測試編譯後的檔案是否有問題

3.1 使用xcode生成乙個命令列工程,

file->

new->project-> 選擇mac os 下的command line tools工程

3.2 將v8/include 資料夾拷貝到xcode xx.xcodeproj同級目錄下。

3.3 設定檔案索引路徑

targer -> build settings -> search paths 設定 header search paths 新增一項$(srcroot)

targer -> build settings -> search paths 設定 user header search paths 新增一項$(srcroot)/include

3.2 拷貝靜態庫

在xcode工程,xx.xcodeproj同級目錄下新建乙個lib資料夾,再在其次級新建icu和inspector資料夾

x64.release/obj拷貝 libv8_base.a、libv8_external_snapshot.a、libv8_libbase.a、libv8_libplatform.a、libv8_libsampler.a拷貝至剛新建的lib目錄

x64.release/obj/third_party/icu拷貝libicui18n.a、libicuuc.a至 lib/icu資料夾

x64.release/obj/src/inspector拷貝libinspector.a至lib/inspector

3.3 拷貝

跳轉到xcode輸出執行檔案的目錄下

x64.release目錄下的

natives_blob.bin、snapshot_blob.bin、icudtl.dat

拷貝到xcode輸出執行檔案的目錄下

用官方提供的helloworld來測試。

// use of this source code is governed by a bsd-style license that can be

// found in the license file.

#include #include #include #include "include/libplatform/libplatform.h"

#include "include/v8.h"

int main(int argc, char* argv)

// dispose the isolate and tear down v8.

isolate->dispose();

v8::v8::dispose();

v8::v8::shutdownplatform();

delete platform;

delete create_params.array_buffer_allocator;

return0;

} 編譯執行。ok

v8引擎和v12引擎 深入V8引擎 AST 2

先宣告一下,這種長系列的大塊頭部落格只能保證盡可能的深入到每一行原始碼,有些 我不樂意深究就寫個注釋說明一下作用。另外,由於本地整理的比較好,部落格就隨心寫了。bool parseprogram parseinfo info,isolate isolate 所需要關心的核心 就是這些,非常簡單,pa...

JS中V8引擎簡介

document 2020 09 29 v8引擎 認識v8 v8 策略 v8常用的gc演算法 新生代物件的垃圾 將新生代記憶體也分成兩個大小相等的空間 使用空間為from,空閒空間為to 活動物件儲存於from空間中 to一直是空閒的 當from空間應用到一定程度之後 觸發gc操作 標記整理後將活動...

Js直譯器V8引擎嵌入的異常處理

js直譯器v8引擎嵌入的異常處理 2011年08月10日 v8引擎為google開發的js語言直譯器有著高效易用等特點,通常它執行乙個js指令碼需要經過編譯和執行步驟,由於我們的指令碼程式很可能不正確,隨時造成過程環節的異常,我們來解決乙個異常以及錯誤的捕捉和處理過程,如下指令碼 test.js 使...