Electron + node C++开发

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版本号

上一篇:gyp: Undefined variable module_name in binding.gyp while trying to load binding.gyp


下一篇:vscode 编写node的c++ 扩展