最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

v8引擎編譯全過(guò)程記錄(保姆級(jí)教程)2023.7.22

2023-07-23 14:04 作者:XY0797-001  | 我要投稿

一開(kāi)始我是參考:https://blog.csdn.net/qq_33958297/article/details/105331502,因?yàn)榘俣壬弦凰丫褪撬?/p>

但是那篇博客講得很迷,跟著做沒(méi)有成功。后面踩坑無(wú)數(shù),查了一大堆資料才總結(jié)出這套穩(wěn)定可用的方法,希望能幫到后人。

這篇文章我在博客園、知乎、csdn上也有同步發(fā)布。

0.環(huán)境配置

1.安裝了在環(huán)境變量里面的Python310和Git,(https://www.cnblogs.com/xy0797/p/17574346.html)或(https://blog.csdn.net/qq_21499983/article/details/131873250)

2.安裝有VS2022(可能需要安裝上使用C++的桌面開(kāi)發(fā)通用Windows平臺(tái)開(kāi)發(fā))

1.下載v8項(xiàng)目源代碼

V8在GitHub上有一個(gè)官方鏡像:https://github.com/v8/v8

進(jìn)入項(xiàng)目主頁(yè)后,如下圖所示搜索lkgr版本的分支

記下最新版本,本人寫文時(shí)是10.4-lkgr


找到一個(gè)合適的地方創(chuàng)建空文件夾v8,打開(kāi)cmd,設(shè)定工作目錄到v8文件夾

運(yùn)行命令配置代理,根據(jù)代理工具的端口修改

僅僅運(yùn)行上面的命令是不夠的,還需要去系統(tǒng)設(shè)置或代理工具里面設(shè)置系統(tǒng)全局代理,也就是設(shè)置->網(wǎng)絡(luò)和Internet->代理里面的

然后保持cmd窗口和代理程序不關(guān)閉,進(jìn)入下一步

2.下載開(kāi)發(fā)工具

訪問(wèn)

https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

找到Download鏈接下載包

新建一個(gè)depot_tools文件夾解壓壓縮包,然后把文件夾路徑添加到PATH環(huán)境變量里面

需要確保Python已經(jīng)安裝,并且Python的安裝目錄在環(huán)境變量里面

注意:環(huán)境變量要添加在所有Python相關(guān)變量之前。

3.下載配置項(xiàng)目

我們回到設(shè)置了代理的那個(gè)cmd窗口

如果你不小心關(guān)閉了,需要重新運(yùn)行上面的命令設(shè)置代理

我們先設(shè)置一個(gè)環(huán)境變量,不然谷歌的工具不會(huì)下載Windows相關(guān)的工具

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

確保你的代理設(shè)置完畢,運(yùn)行以下命令拉取源代碼

fetch v8

拉取的比較費(fèi)時(shí)間,哪怕你的代理能到10MB/s也要幾分鐘才能拉取完

拉取代碼完成后,我們可以看到它在我們的v8文件夾里面又創(chuàng)建了一個(gè)v8文件夾

所以說(shuō)先進(jìn)入v8文件夾

cd v8

接著檢出我們記錄的10.4-lkgr版本

git checkout 10.4-lkgr

然后再次確保你的代理設(shè)置完畢,并且確保你的cmd執(zhí)行過(guò)開(kāi)頭的環(huán)境變量設(shè)置命令,運(yùn)行以下命令完成依賴處理

gclient sync -v

這一步會(huì)下載一些依賴,沒(méi)有看到報(bào)錯(cuò)就說(shuō)明成功了,我們進(jìn)入下一步

4.編譯安裝ninja

找一個(gè)合適的地方,然后git克隆ninja項(xiàng)目,我是直接在E盤根目錄搞

git clone https://github.com/ninja-build/ninja.git

然后進(jìn)入ninja項(xiàng)目文件夾,調(diào)用git檢出release

接下來(lái)打開(kāi)vs的開(kāi)發(fā)人員命令提示符Developer Command Prompt for VS 2022

如下圖,進(jìn)入ninja項(xiàng)目文件夾,運(yùn)行下面的命令編譯ninja

python configure.py --bootstrap

運(yùn)行完成后就能看到ninja.exe在ninja項(xiàng)目文件夾里面

直接把它移動(dòng)到之前下載解壓的depot_tools目錄下

5.編譯v8 x64 release動(dòng)態(tài)庫(kù)

我們回到cmd窗口,先cd到v8\v8文件夾下

現(xiàn)在我們不需要代理,先去關(guān)閉系統(tǒng)全局代理,然后運(yùn)行下面的命令關(guān)閉git和命令行的代理

再次設(shè)置環(huán)境變量,防止自己不小心關(guān)閉cmd窗口忘記了設(shè)置

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

設(shè)置編譯信息,動(dòng)態(tài)庫(kù)編譯模式

python tools\dev\v8gen.py x64.release -vv -- is_component_build=true v8_static_library=false

我們可以看到報(bào)錯(cuò)了

提示You must install Windows 10 SDK version 10.0.20348.0 including the "Debugging Tools for Windows" feature.

所以說(shuō)我們需要安裝Windows 10 SDK,打開(kāi)Visual Studio Installer

點(diǎn)擊修改

選擇單個(gè)組件,搜索Windows 10 SDK,勾上報(bào)錯(cuò)信息提示的版本,點(diǎn)擊修改

如果你這里已經(jīng)是勾上的,那么直接關(guān)閉Visual Studio Installer,進(jìn)入下一步

完成后關(guān)閉Visual Studio Installer,在Windows搜索欄搜索添加或者刪除程序

搜索Windows Software Development Kit

找到我們的版本,點(diǎn)擊修改

選擇Change,然后點(diǎn)擊Next

勾上Debugging Tools for Windows,點(diǎn)擊Change

完成后關(guān)閉窗口,回到cmd窗口,重新生成編譯配置

python tools\dev\v8gen.py x64.release -vv -- is_component_build=true v8_static_library=false

配置生成成功了

使用ninja編譯

ninja -C out.gn\x64.release

然后這個(gè)過(guò)程CPU會(huì)吃滿,最好不要干其它事情。

跑完要個(gè)十幾分鐘,耐心等待。

跑完后我們進(jìn)入v8\v8\out.gn\x64.release\文件夾

往下翻能找到d8.exe,打開(kāi)看看正不正常

隨便輸入一串js代碼看看結(jié)果

console.log("test"+4*8),5*7;

輸出test32,返回35,說(shuō)明編譯的很成功

在別的地方創(chuàng)建個(gè)文件夾,復(fù)制出以下文件

這就是動(dòng)態(tài)版本v8程序運(yùn)行所需的dll,運(yùn)行d8.exe發(fā)現(xiàn)可以正常運(yùn)行(路徑包含中文會(huì)導(dǎo)致無(wú)法雙擊運(yùn)行)

5.編譯v8 x64 release靜態(tài)庫(kù)

后面還有一些教程,但是B站的編輯器不支持markdown,屬實(shí)難繃,工作量太大了

各位到我其它平臺(tái)發(fā)的博客上看剩余部分吧:

博客園:https://www.cnblogs.com/xy0797/p/17560172.html

csdn:https://blog.csdn.net/qq_21499983/article/details/131873319

v8引擎編譯全過(guò)程記錄(保姆級(jí)教程)2023.7.22的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
古丈县| 金坛市| 扬中市| 三台县| 孙吴县| 会同县| 丹巴县| 宜宾县| 云浮市| 汝城县| 湘潭县| 洛阳市| 株洲市| 潍坊市| 泰州市| 江北区| 余干县| 苏州市| 南通市| 福建省| 龙门县| 林芝县| 旬阳县| 保山市| 云安县| 渭南市| 东台市| 贵德县| 洪雅县| 普兰店市| 高安市| 杭州市| 霍邱县| 班戈县| 建湖县| 文成县| 云阳县| 灵寿县| 宿迁市| 沈阳市| 宁化县|