[Node.js] 如何使用gn+ninja编译nodejs插件 addons, c/c++ addons

经过我的研究,其实,编译C/C++ addons并不需要下载使用官方所说的node-gyp程序。

不管是使用C还是C++去编译node的N-API都不需要,只要有 GN + Ninja就足够了。

别忘了,node.js, gyp, gn , ninja都是Google的一套家伙事儿。所以......

Go。 不擅长排版,我就一路写下去了......

node.js和底层C/C++通讯,采用addons的方式, N-API就可以完成这样的任务,这样就不用依赖V8,这里说的不依赖并不是指不使用V8的东西了,毕竟node.js是靠V8运行的。 N-API可以兼容不同的V8版本, 你要是直接用 V8的函数也可以完成js和C的通信,那你就要包含#include <v8.h>这样的头文件。官网上有说明,可以去查看查看,我就不多说了。

反正记住node.js和 C/C++层通信你就用N-API就行。

先说纯C写的N-API, 因为 C++写N-API的时候需要下载node-addon-api库,然后写C++文件的使用包含 napi.h头文件就行了。

如何不用node-gyp,只是用 gn + ninja编译插件?

插件是一个二进制文件,最重要的是以 .node结尾。

你只需要使用 gn + ninja编译出来一个 shared_library 库,然后把这个库改成以.node后缀即可。

比如你生成的库是 libcaddon.so, 那么你重新命名一下以.node后缀, 比如 caddon.node即可。

使用的时候和加载其

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值