运行时的符号查找错误
我试图build立一个lzham的NodeJS绑定,但我不断收到symbol lookup error: [...] undefined symbol: [...]
错误,每当我尝试从lzham调用一个函数。
我已经包括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
的兄弟:
"libraries": [ "-llzham" ]
确切的库名称可能会在您的系统上不同,但希望这足够接近,让你在正确的道路上。