在构build时节点gyp链接库依赖关系

我的nodejs插件使用cares库和我的binding.gypdependencies属性是指向这一点。 现在,每当我必须运行addon ,我必须导出LD_LIBRARY_PATHvariables。

有没有办法我可以在binding.gypconfiguration这个,这样每次我都不需要设置LD_LIBRARY_PATH 。 (在build立时链接)

"dependencies": [ "deps/cares/cares.gyp:cares" ]依赖项设置: "dependencies": [ "deps/cares/cares.gyp:cares" ]

Ex export: export LD_LIBRARY_PATH=build/Release

       

网上收集的解决方案 "在构build时节点gyp链接库依赖关系"

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

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

我的答案是如何在binding.gyp node-gyp for node.js扩展中添加对静态库的依赖似乎也适用于此处,并且应该是跨平台的。

简而言之,它使用module_root_dir并build立一个绝对path。 例:

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

我已经成功地在Ubuntu和Debian中使用以下binding.gyp行获取相对path:

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

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

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

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