用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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接