Ubuntu でV8をコンパイルし、isolate_test.cc という非常に単純な V8 プログラムを作成しました。これは、Google の Hello World の例に基づいています。
#include <v8.h>
using namespace v8;
int main(int argc, char* argv[]) {
V8::initialize();
Isolate* isolate = Isolate::GetCurrent(); //Always returns NULL
return 0;
}
このプログラムをコンパイルするために使用するコマンドは次のとおりです。
g++ -Iinclude -g isolate_test.cc -o isolate_test -Wl,--start-group out/x64.debug/obj.target/{tools/gyp/libv8_{base,snapshot},third_party/icu/libicu{uc,i18n,data}}.a -Wl,--end-group -lrt -lpthread
問題はIsolate::GetCurrent()
常に返品NULL
です。なぜこれが起こるのですか?現在の正しい取得方法は何Isolate
ですか?
私は軌道から外れている可能性がありますが、最初に考えたのは、これはIsolate::GetCurrent()
から現在のスレッドを取得できないことに関連しているということlibpthread
です。
更新:この質問に従って、プログラムの最初の呼び出しとして追加V8::initialize()
しましたが、これで問題は解決しません。