node.js C++ 扩展
2015-07-04 17:50
696 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">node C++扩展在百度也能找到一部分资料,可能资料太早过时的原因,总是出错误</span>
多试了几次,终于通过,把过程记下一下吧,我用的操作系统是Windows7,linux没有过,估计又是另一种情况了吧
一、首先,塔建基础环境:
1. node.js V0.12.2 https://nodejs.org/download/
2.VS 2010
3.python 2.7
二、安装node-gyp
npm install node-gyp -g
安装成功后,在C:\Users\Administrator\.node-gyp\0.12.2 文件夹下按说应该包含需要的所有库文件和头文件,但是我的目录只有Release文件夹下的一个node.lib,既没有Debug,也没有头文件,所以根本没有办法进行下一步开发,我的解决办法是直接下载了node的源代码进行编译。
三、下载编译node源码
1.下载地址:https://nodejs.org/dist/v0.12.6/node-v0.12.6.tar.gz
2.解压
3.我进入vs2010 命令行提示(不知道是不是必须的,我为了防止不必要的意外)
4.进入node-v0.12.6文件夹
5.vcbuild.bat (我又用vcbuild.bat debug 生成debug版本)
至此,node编译完成,Debug和Release文件夹下有我们需要的node.lib文件,src文件夹和deps文件夹下有我们需要的头文件,我将这四个文件夹复制到了C:\Users\Administrator\.node-gyp\0.12.2目录
四、制作HelloWorld
1.创建文件 hello.cc
// hello.cc #include <node.h> using namespace v8; void Method(const FunctionCallbackInfo<Value>& args) { Isolate* isolate = Isolate::GetCurrent(); HandleScope scope(isolate); args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world")); } void init(Handle<Object> exports) { NODE_SET_METHOD(exports, "hello", Method); } NODE_MODULE(addon, init)
2.创建文件binding.gyp
{ "targets": [ { "target_name": "addon", "sources": [ "hello.cc" ] } ] }
3. node-gyp configure ,改命令可以生成Vs2010下的项目文件,我们打开文件可以看出其配置的node头文件和库文件的路径均在C:\Users\Administrator\.node-gyp\0.12.2目录,这就是我为什么刚才把生成的文件全部拷贝到这个文件夹里了。
4.node-gyp build 成功生成addon.node(在build/Release/文件夹下)
下面就可以测试一下了:
node
var addon = require('./build/Release/addon.node');
addon.hello();
看到输出的world了吧,ok,到此大功告成
相关文章推荐
- 【leetcode】Populating Next Right Pointers in Each Node I&&II
- 防止nodejs进程出错时退出
- Node.js学习笔记 01 搭建静态服务器
- Remove Nth Node From End of List
- hadoop datanode 启动正常,但master无法识别(50030不显示datanode节点)
- nodejs 的 MD5加密算法
- node入门3----路由
- Leetcode|Populating Next Right Pointers in Each Node
- msnodesql的使用
- node-webkit:开发桌面+WEB混合型应用的神器
- WebStorm9配置supervisor热部署NodeJS
- 裁剪效果的实现(ClippingNode)
- leetcode 25: Reverse Nodes in k-Group
- leetcode 24: Swap Nodes in Pairs
- leetcode 19: Remove Nth Node From End of List
- node.js调用C++开发的模块实例
- Nodejs 入门1 windows下安装nodejs、npm、ant及常用命令
- nodejs爬虫抓取数据之编码问题
- nodejs爬虫抓取数据乱码问题总结
- Node.js 学习笔记