gpt4 book ai didi

node.js - 如何在 binding.gyp node-gyp 中为 node.js 扩展添加对静态库的依赖

转载 作者:IT老高 更新时间:2023-10-28 23:05:57 41 4
gpt4 key购买 nike

我有一个简单的 binding.gyp 文件来构建我的 node.js 扩展。我想改变库“mylib”的链接方法,静态链接而不是使用共享库。

{
"targets": [
{
"target_name": "myext",
"sources": [
"code/main.cpp",
"code/load.cpp",
"include/load.h"
],
"include_dirs": [
"include", "../Library/include"
],
"libraries": [
"-lmylib", "-L/home/admin/MyLib/Library/binaries/linux/Release"
],
"cflags!": [ "-fno-exceptions" ],
"cflags": [ "-std=c++11" ],
"cflags_cc!": [ "-fno-exceptions" ]
}
]
}

mylib 的静态和共享版本在同一目录下:

# ls /home/admin/MyLib/Library/binaries/linux/Release
libmylib.a libmylib.so

我想静态链接以避免库安装/加载问题。

最佳答案

您可以让 node-gyp 使用内置变量 module_root_dir 为您插入路径如果我正确解释您的代码,请将您的 libraries 更改为例如:

"libraries": [
"-lmylib",
"-L<(module_root_dir)/../Library/binaries/linux/Release"
],

可能会成功。虽然我不确定它是否会与 .a.so 版本链接,但指定您可以尝试:

"libraries": [
"<(module_root_dir)/../Library/binaries/linux/Release/libmylib.a"
],

带有out -L 前缀和-lmylib。此外,我有点不确定是否允许您遍历根目录。我之前没有使用模块根目录上方的任何东西进行测试。除此之外,您应该一切顺利。

关于node.js - 如何在 binding.gyp node-gyp 中为 node.js 扩展添加对静态库的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748224/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com