运行时符号查找错误

时间:2015-01-16 13:23:11

标签: c++ c node.js node-gyp

我正在尝试构建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

1 个答案:

答案 0 :(得分:1)

试试这个,作为include_dirs

的兄弟姐妹
"libraries": [ "-llzham" ]

您的系统上确切的库名称可能有所不同,但希望它足够接近,以便让您走上正确的道路。