我怎么期望使用v8 :: SetNativesDataBlob?

时间:2015-06-30 05:27:37

标签: c++ embedded-v8

调查我的代码中的段错误,在V8 source code中查找GetBuiltinsCount会引导我发表此评论:

/**
 * 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 interpreter确实调用了这种方法,但它根本不清楚它在做什么以及为什么这样做。 基本样本不会调用此方法。

1 个答案:

答案 0 :(得分:0)

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

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

如果使用快照数据编译,请按Hello World example code中所示调用V8::InitializeExternalStartupData。您不直接致电v8::SetNativesDataBlob

否则,解决方案是编译而不使用快照数据。然后,您根本不需要调用上述任何一个函数。这是构建过程中how to configure this的一个答案。请注意,使用快照数据可缩短流程启动时间。