node-gyp link 构建时的库依赖

node-gyp link library dependencies at build time

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

有什么方法可以在 binding.gyp 中进行配置,这样我就不必每次都设置 LD_LIBRARY_PATH。 (在构建时链接)

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

Ex 出口:export LD_LIBRARY_PATH=build/Release

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

为我工作 Mac 以及 Linux(Ubuntu)。

我使用以下 binding.gyp 行在 Ubuntu 和 Debian 中成功获得了相对路径:

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

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

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

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

我对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/"
]