当我阅读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是否兼容?
答案 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 ++时,我们将有更好的方法来处理此问题。