构建时的node-gyp链接库依赖项

时间:2015-04-21 13:09:06

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

我的nodejs插件使用cares库,我的binding.gyp具有dependencies属性,指向此属性。现在每当我必须运行addon时,我必须导出LD_LIBRARY_PATH变量。

有没有办法可以在binding.gyp中配置它,这样每次我都不必设置LD_LIBRARY_PATH。 (在构建时链接)

binding.gyp中的依赖关系设置:"dependencies": [ "deps/cares/cares.gyp:cares" ]

Ex export:export LD_LIBRARY_PATH=build/Release

3 个答案:

答案 0 :(得分:9)

"libraries": [ "-Wl,-rpath,./build/Release/" ]

在Mac和Linux(Ubuntu)上为我工作。

答案 1 :(得分:3)

我对how to add dependence to static library in binding.gyp node-gyp for node.js extension的回答似乎也适用于此,并且应该是跨平台的。

简而言之,它使用module_root_dir并构建绝对路径。 例如:

"libraries": [
    "-lcares",
    "-L<(module_root_dir)/build/Release/"
]

答案 2 :(得分:1)

我已成功获得Ubuntu&amp; amp;的相对路径。 Debian使用以下binding.gyp行:

"libraries": [ "../lib/somelib/somelib.a" ]

我的文件夹结构如下所示:

|--binding.gyp
|--app.cc
|--lib
   |--somelib
      |--somelib.a

我从这里得到了方法(有点间接): https://github.com/nodejs/node-gyp/issues/49