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

Roy*_*nto 12 c++ node.js node-gyp

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

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

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

出口出口: export LD_LIBRARY_PATH=build/Release

Roy*_*nto 9

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

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

  • 更好的一个 `"libraries": [ "-Wl,-rpath,<!(pwd)/build/Release/" ]`。即使我使用 npm 安装,这也能工作。(通过执行 pwd 自动设置绝对路径)但在 Windows 上不起作用。奇怪的是,预定义的变量“PRODUCT_DIR”对我不起作用。`"库": [ "-Wl,-rpath,<(PRODUCT_DIR)" ]` (2认同)
  • 尝试使用 `-Wl,-rpath,<(module_root_dir)/build/Release/` 而不是 `<!(pwd)...` (2认同)

Ale*_*Ale 8

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

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

"libraries": [
    "-lcares",
    "-L<(module_root_dir)/build/Release/"
]
Run Code Online (Sandbox Code Playgroud)