node.js 调用C/C++扩展

node.js 调用 C/C++扩展

1.新建一个项目目录hello
2.在该目录下创建一个存放C/C++源代码的目录src
3.编写C/C++源代码hello.cc

// hello.cc
#include <node.h>

namespace demo {

using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;

void Method(const FunctionCallbackInfo<Value>& args) {
  Isolate* isolate = args.GetIsolate();
  args.GetReturnValue().Set(String::NewFromUtf8(isolate, "Hello World"));
}

void init(Local<Object> exports) {
  NODE_SET_METHOD(exports, "hello", Method);
}

NODE_MODULE(addon, init)

}  // namespace demo

4.在项目hello目录下,创建binding.gyp编译配置文件

{
  'targets': [
    {
      'target_name': 'hello',
      'sources': [
          'src/hello.cc'
      ],
      'conditions': [
          ['OS == "win"', 
          {
              'libraries': ['-lnode.lib']
          }
          ]
      ]
    }
  ]
}

5.在项目hello目录下,编写测试代码test.js

var addon = require('./build/Release/hello.node');
console.log(addon.hello());

6.使用node-gyp命令配置项目

node-gyp configure

7.使用node-gyp命令编译项目

node-gyp build

8.项目hello目录下,运行测试代码

node test.js

显示

Hello World

成功使用node.js调用C/C++代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值