Linux上编译V8

本文详细记录了在Linux上编译V8的全过程,包括遇到的问题及解决方法。由于V8官方文档的不完善,作者在编译过程中遇到了gclient工具的使用、依赖包的下载、代码编译和样例程序hello-world.cc的编译错误等挑战。通过调整编译命令和头文件路径,最终成功编译并运行V8。
摘要由CSDN通过智能技术生成

Linux上编译V8

好吧~~看到这篇文章你也许会问: 编译一个有详细文档的V8有什么难的,你还写个东西?当翻译么? 嗯。。。如果你真的这样认为,那我只能告诉你:朋友你太天真了。v8的文档是个梗好吧。。我都没想到google这么大的公司开源个项目,文档写得如此粗糙,你要是想通过V8的文档来做v8的编译或者embed开发,我只能说 兄弟,你会被坑得错过大年三十的。为什么呢?因为开发者光顾着升级代码,不更新文档了,文档里大量老旧错误信息,网上这方面的信息上也有很多问题。 好了,多的不说了。我直接贴出这个编译的过程,中间遇到的坑以及编译samples中hello-world.cc的方法:

步骤一

google 在v8这个的编译上面用了一个极其蛋疼的工具(推广需要)。以前可以直接通过git拉下来,然后通过 make dependencies这个方式来安装依赖,这个方式 我只能说这个老方式确实很不错。but!!这个方式已经不行了,你要是拉代码下来然后用这个命令,他会提醒你使用 gclient sync。好吧~所以这个命令是啥呢,你要是直接使用,会提醒你 压根儿没这个命令。嗯。。因为他要下google的一个包。命令如下:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
复制代码

然后为了让全局能够使用这个命令,我们必须还要clone下来的这个路径加入到PATH中

vim ~/.zshrc
#或者.bash_profile
export PATH=~/git/depot_tools:"$PATH"
复制代码

好了 这个时候就可以使用gclient sync了,我看到有网上的博客,在同步下来的v8的代码中使用这个命令,然后在里面又同步了一个v8,然后他们还专门把下面路径的v8里面的third_party文件夹拿出来。。。好吧。。这个看着确实有点搞笑。。这个gclient sync他是把代码整个拉下来并且把v8编译所需要的依赖包都拉下来的一个工具。首先你要配置v8拉取的地址

gclient config https://chromium.googlesource.com/v8/v8.git
复制代码

这个时候文件夹下生成一个文件 .gclient,看下里面的内容

solutions = [
	{   "name": "v8",
		"url": "https://chromium.googlesource.com/v8/v8.git",
		"deps_file": "DEPS",
		"managed": True,
		"custom_deps": {},
	},
]
cache_dir = None
复制代码

好吧,这里面其实就注意一个叫deps_file的文件默认是DEPS,里面会记录要依赖的文件。然后你就可以使用gclient sync了。。这个东西就可以把整套代码拉下来了。所以完全不用自己再去clone代码了 。。像网上blog里那位哥们儿在clone的代码里用这个命令 然后又拉取了一个完整v8,还说依赖包安装在了v8工程下v8目录里,然后把它copy出来也是蛮搞笑的。这一步必须要用挂vpn才能完成,用shadowsocks全局模式也是没办法。这个我有亲身体会,因为我用了全剧模式依然能copy代码 但是没法安装依赖,我曾经一度以为是我自己电脑出了问题,还有安装了几次,都以失败告终。。后来仔细看报错信息 才发现是个 网络错误

Failed to connect to chromium.googlesource.com port 443: Operation timed out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值