名称空间v8和名称空间v8 :: internal之间有什么区别?

时间:2019-02-09 12:43:57

标签: c++ v8

当我阅读v8的源代码时,我有一个我不太了解的部分。

  v8::Isolate::CreateParams create_params;
  create_params.array_buffer_allocator =
      v8::ArrayBuffer::Allocator::NewDefaultAllocator();
  v8::Isolate* isolate = v8::Isolate::New(create_params);

我跟踪了v8 :: Isolate :: New的实现,然后找到了以下代码:

// static
Isolate* Isolate::Allocate() {
  return reinterpret_cast<Isolate*>(i::Isolate::New());
}

因为我读了一些代码,所以我知道“ i”的意思是“内部的”,但是我不确定其余的内容。 v8 :: Isolate和v8 :: internal :: Isolate是否兼容?

1 个答案:

答案 0 :(得分:4)

通常,C ++库在需要声明/定义库所使用但用户不应该使用的内容时,使用ERROR ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: org.apache.spark.deploy.SparkHadoopUtil.globPathIfNecessary(Lorg/apache/hadoop/fs/FileSystem;Lorg/apache/hadoop/fs/Path;)Lscala/collection/Seq; java.lang.NoSuchMethodError: org.apache.spark.deploy.SparkHadoopUtil.globPathIfNecessary(Lorg/apache/hadoop/fs/FileSystem;Lorg/apache/hadoop/fs/Path;)Lscala/collection/Seq;(也通常称为[RMCommunicator Allocator] ERROR org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator - ERROR IN CONTACTING RM. java.lang.NullPointerException)命名空间。

这是一种类似于“库链接”的方式。希望/当模块到达C ++时,我们将有更好的方法来处理此问题。