首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点自定义附件/ v8 / c++依赖项

节点自定义附件/ v8 / c++依赖项
EN

Stack Overflow用户
提问于 2014-06-30 17:39:57
回答 1查看 717关注 0票数 1

我正在尝试使用代码::块在ubuntu上构建一个node c++插件。我已经构建了一个依赖于另一个共享库dep.so的addon.node共享库。使用创建我的basid js文件时

代码语言:javascript
复制
var addon = require(./addon.node);

它给了我们

代码语言:javascript
复制
Error: dep.so: cannot open shared object file: No such file or directory
   at Error (native)
   at Module.load (module.js:357:32)
   at Function.Module._load (module.js:312:12)
   at Module.require (module.js:367:17)
   at require (module.js:386:17)
   at repl:1:13
   at REPLServer.defaultEval (repl.js:130:27)
   at bound (domain.js:254:14)
   at REPLServer.runBound [as eval] (domain.js:267:12)
   at REPLServer.<anonymous> (repl.js:277:12)

构建addon.node时会包含我的dep.so文件,该文件与addon.node位于相同的构建目录中

运行它提供的ld addon.node (在其他方面)

代码语言:javascript
复制
ld: warning: dep.so, needed by addon.node, not found (try using -rpath or -rpath-link)
ld: warning: cannot find entry symbol _start; not setting start address
addon.node: undefined reference to `v8::ObjectTemplate::SetInternalFieldCount(int)'

所以,我似乎有两个问题: 1)它找不到我自己创建的dep.so库2)它找不到v8库(我想这需要以某种方式构建)

有什么建议可以让它工作吗?

干杯,迈克

EN

回答 1

Stack Overflow用户

发布于 2016-11-28 11:05:04

一般来说,nbind使得为库编写Node.js绑定变得很容易,libui-node是使用它来创建跨平台原生UI的一个实际示例。它的构建文件显示了如何成功地链接到一个名为libui的库,该库位于模块的根目录(而不是构建目录)中。

在Windows上:

代码语言:javascript
复制
"libraries": [
    "<(module_root_dir)/libui.lib"
]

Linux:

代码语言:javascript
复制
'ldflags': [
    '-Wl,-rpath,<(module_root_dir)',
],
"libraries": [
    "<(module_root_dir)/libui.so"
]

OS X:

代码语言:javascript
复制
"xcode_settings": {
    "OTHER_LDFLAGS": [
        "-L<(module_root_dir)",
        "-lui",
        "-rpath",
        "<(module_root_dir)"
    ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24487169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档