我正在尝试构建lzham NodeJS绑定(bind),但是每当尝试从lzham调用函数时,都会不断收到symbol lookup error: [...] undefined symbol: [...]
错误。
我像这样包含了lzham:
#define LZHAM_DEFINE_ZLIB_API
#include "lzham_static_lib.h"
我的
binding.gyp
文件如下所示:{
"targets": [
{
"target_name": "lzham",
"sources": [
"lzham.cc"
],
"include_dirs": [
"<!(node -e \"require('nan')\")",
"lzham/include",
"lzham/lzhamdecomp",
"lzham/lzhamcomp",
],
},
]
}
我正在Linux上编译。
var lzham = require('./build/Release/lzham.node'),
buffer = require('fs').readFileSync('compressed');
lzham.decompress(buffer);
此代码调用C++中定义的函数,该函数依次调用
lzham_z_inflateInit2
,从而产生此错误:node: symbol lookup error: /node-lzham/build/Release/lzham.node: undefined symbol: lzham_z_inflateInit2
最佳答案
试试这个,作为include_dirs
的 sibling :
"libraries": [ "-llzham" ]
确切的库名称在您的系统上可能有所不同,但是希望它足够接近以使您走上正确的道路。