我正在尝试使用代码::块在ubuntu上构建一个node c++插件。我已经构建了一个依赖于另一个共享库dep.so的addon.node共享库。使用创建我的basid js文件时
var addon = require(./addon.node);它给了我们
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 (在其他方面)
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库(我想这需要以某种方式构建)
有什么建议可以让它工作吗?
干杯,迈克
发布于 2016-11-28 11:05:04
一般来说,nbind使得为库编写Node.js绑定变得很容易,libui-node是使用它来创建跨平台原生UI的一个实际示例。它的构建文件显示了如何成功地链接到一个名为libui的库,该库位于模块的根目录(而不是构建目录)中。
在Windows上:
"libraries": [
"<(module_root_dir)/libui.lib"
]Linux:
'ldflags': [
'-Wl,-rpath,<(module_root_dir)',
],
"libraries": [
"<(module_root_dir)/libui.so"
]OS X:
"xcode_settings": {
"OTHER_LDFLAGS": [
"-L<(module_root_dir)",
"-lui",
"-rpath",
"<(module_root_dir)"
]
}https://stackoverflow.com/questions/24487169
复制相似问题