缺less符号的问题 – 不推荐使用NewInstance。 只有当与nw.js一起运行

在我的项目中,我使用libvirt库。 这些是libvirt api的节点绑定。 由于这个问题可以涉及其他绑定的情况下,我发布我的问题在这里。 安装npm安装后,会抛出警告(下面​​的例子)

../src/domain.cc: In static member function 'static v8::Local<v8::Object> NLV::Domain::NewInstance(virDomainPtr)': ../src/domain.cc:197:44: warning: 'v8::Local<v8::Object> v8::Function::NewInstance() const' is deprecated (declared at /home/mark/.node-gyp/6.3.1/include/node/v8.h:3243): Use maybe version [-Wdeprecated-declarations] Local<Object> object = ctor->NewInstance(); ^ 

在使用普通节点应用程序后,它不会造成任何问题。 但是,当涉及到nw.js时,它正是由于这个NewInstance的使用而崩溃的。 有关证据请参阅:

 ....nwjs/nw: symbol lookup error: ..../project/node_modules/libvirt/ build/Release/libvirt.node: undefined symbol: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEi Aborted (core dumped) 

有问题的这个符号引用了同样的方法 – NewInstance。

有问题的代码,纯粹的forms如下所示:

 Domain::Domain(virDomainPtr handle) : NLVObject(handle) {} Local<Object> Domain::NewInstance(virDomainPtr handle) { Nan::EscapableHandleScope scope; Local<Function> ctor = Nan::New<Function>(constructor); Local<Object> object = ctor->NewInstance(); ... 

由于我不太熟练这些V8的事情,也许有人可以告诉我要改变什么以及如何使它工作。