经过我的研究,其实,编译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即可。
使用的时候和加载其