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