我的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
答案 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