我正在尝试构建lzham NodeJS绑定,但每当我尝试从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
答案 0 :(得分:1)
试试这个,作为include_dirs
:
"libraries": [ "-llzham" ]
您的系统上确切的库名称可能有所不同,但希望它足够接近,以便让您走上正确的道路。