我尝试通过 node-gyp 和 node-addon-api 编译 node_module。编译没有错误,但我无法从静态库中公开函数。(与最终节点文件一样小于静态库 abc.a)
绑定.gyp
{
"targets": [
{
"target_name": "test",
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"/data/abc.h",
"main.cpp"
],
'include_dirs': [
"<!@(node -p \"require('node-addon-api').include\")"
],
'libraries': [
"/data/abc.a"
],
'dependencies': [
"<!(node -p \"require('node-addon-api').gyp\")"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
}
]
}
主文件
/* main.cpp */
#include <napi.h>
#include "abc.h"
Napi::Object InitAll(Napi::Env env, Napi::Object exports) {
return exports;
}
NODE_API_MODULE(testaddon, InitAll)
main.js(用于暴露对象)
const testAddon = require('./build/Release/apostlib');
console.log(testAddon);
module.exports = testAddon;