码迷,mamicode.com
首页 > 编程语言 > 详细

Nodejs 使用 addons 调用c++ 初体验(一)

时间:2017-03-02 16:52:34      阅读:1350      评论:0      收藏:0      [点我收藏+]

标签:rom   2.7   return   文件夹   分享   inf   补充   ini   play   

纠结很久,决定写一点遇到的“坑”。

基础环境:win7-64bit  node(v7.5.0)   这些安装实在是太方便了,自行准备吧。

1. 安装 python(2.7.x ),用npm安装 node-gyp(3.5.0),创建一个文件夹来存放 binding.gyp hello.cc test.js

 binding.gyp 内容如下:

技术分享
1 {
2   "targets": [
3     {
4       "target_name": "hello",
5       "sources": [ "hello.cc" ]
6     }
7   ]
8 }
View Code

hello.cc  内容如下:

技术分享
 1 #include <v8.h>
 2 #include <node.h>
 3 
 4 using namespace node;
 5 using namespace v8;
 6 
 7 void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
 8 v8::Isolate* isolate = args.GetIsolate();
 9 v8::HandleScope scope(isolate);
10 args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "Hello world"));
11 }
12 
13 void init(v8::Local<v8::Object> target) {
14 NODE_SET_METHOD(target, "hello", Method);
15 }
16 
17 NODE_MODULE(binding, init);
View Code

test.js 内容如下:

技术分享
var addon = require(‘./build/Release/hello‘);
console.log(addon.hello());  
View Code

2. 直接执行 node-gyp configure build 

技术分享

技术分享

3.尝试运行一下吧

技术分享

 

补充:

node-gyp configure 如果失败就多尝试几次,毕竟有些站点链接太慢

node-gyp build 失败的话,对比一下 hello.cc (格外注意,hello.cc 以后可能编译不通过,随时关注一下 v8 ,及时修改一下)

 

Nodejs 使用 addons 调用c++ 初体验(一)

标签:rom   2.7   return   文件夹   分享   inf   补充   ini   play   

原文地址:http://www.cnblogs.com/bhfdz/p/6490875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!