node-gyp
Electron C++,使用nan
npm install -g prebuild node-gyp electron
npm install nan bindings --save
#include <nan.h>
void Add(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if (info.Length() < 2) {
Nan::ThrowTypeError("Wrong number of arguments");
return;
}
if (!info[0]->IsNumber() || !info[1]->IsNumber()) {
Nan::ThrowTypeError("Wrong arguments");
return;
}
double arg0 = info[0]->NumberValue();
double arg1 = info[1]->NumberValue();
v8::Local<v8::Number> num = Nan::New(arg0 + arg1);
info.GetReturnValue().Set(num);
}
void Init(v8::Local<v8::Object> exports) {
exports->Set(Nan::New("add").ToLocalChecked(),
Nan::New<v8::FunctionTemplate>(Add)->GetFunction());
}
NODE_MODULE(demo, Init)
用C++扩展Electron(node-nan版)_Linux mobile development & HTML5 Games/App-CSDN博客
写一个node-gyp的配置文件(文件名固定为binding.gyp),用来编译C++代码。
{
"targets": [
{
"target_name": "demo",
"sources": [ "native/demo.cc" ],
"include_dirs": [
"<!(node -e \"require('nan')\")"
]
}
]
}
node-gyp configure
prebuild -t 12.0.7 -r electron
12.0.7为electron版本号