运行时的符号查找错误

我试图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" ] 

确切的库名称可能会在您的系统上不同,但希望这足够接近,让你在正确的道路上。