用C++编写扩展node.js(node-ffi版)
用C++扩展node.js(node-ffi版)
0.先安装node.js和python(2.7)。请参考:
https://nodejs.org/
https://www.python.org
1.新建一个demo项目:创建demo目录,并进入其中,然后运行下面命令。
mkdirdemo cddemo npminit
运行npminit时,之后会生成一个package.json(具体内容与输入参数有关):
{
"name":"demo",
"version":"1.0.0",
"description":"ademofornodecallnativefunctions",
"main":"demo.js",
"scripts":{
"test":"echo\"Error:notestspecified\"&&exit1"
},
"keywords":[
"node"
],
"author":"LiXianJing",
"license":"ISC"
}
2.安装编译工具和头文件。
sudonpminstall-gnode-gyp npminstallffibindings--save
3.用C++编写原生代码(为了让目录结构整洁一点,我们把代码放到native只目录下)。
下面的文件(native/demo.cc),添加一个Add方法,计算两个数之和:
doubleAdd(doublea,doubleb){
returna+b;
}
4.写一个Makefile(native/Makefile),用来编译C++代码。
all: $(CC)-g-shareddemo.c-olibdemo.dylib clean: rm-frvlibdemo*
5.编写一个JS文件(demo.js)),让它调用原生代码。
varffi=require('ffi');
vardemo=ffi.Library('./native/libdemo',{
'Add':['double',['double','double']]
});
console.log(demo.Add(12345,54321));
7.编译C++程序。
make-Cnative
8.运行JS代码,看看是否工作。
nodedemo.js
参考:
node-ffi
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接