1

GetBuiltinsCount调查我的代码中的段错误,在V8 源代码中查找导致我得到以下评论:

/**
 * NativesStore stores the 'native' (builtin) JS libraries.
 *
 * NativesStore needs to be initialized before using V8, usually by the
 * embedder calling v8::SetNativesDataBlob, which calls SetNativesFromFile
 * below.
 */

我应该如何使用嵌入器v8::SetNativesDataBlob

d8 解释器确实调用了这个方法,但根本不清楚它在做什么以及为什么。基本示例不调用此方法。

4

1 回答 1

0

一年多之后,我发现自己又回到了这个问题上,现在我知道了答案。

您可以使用或不使用外部启动数据(“快照”)来编译 V8。

如果您使用快照数据进行编译,请按照Hello World 示例代码V8::InitializeExternalStartupData所示调用。你不直接打电话。v8::SetNativesDataBlob

否则,解决方案是在没有快照数据的情况下进行编译。然后,您根本不需要调用上述任何一个函数。这是关于如何在构建过程中配置它的一个答案。请注意,使用快照数据会减少进程启动时间。

于 2016-10-12T22:21:39.870 回答