我正在尝试构建一个使用 OpenNI 的 Node.js 插件。我之前没有使用过 Node-gyp,所以我尝试设置 binding.gyp 文件,以便它包含 OpenNI 库作为构建的一部分。我实际编译的代码只是你好世界示例 http://nodejs.org/api/addons.html#addons_hello_world.
我正在使用的 binding.gyp 文件基于以下文件:NUI运动 https://github.com/bengfarrell/nuimotion/blob/master/binding.gypGithub 上也在做类似的事情。这是我的:
{
"targets": [
{
"target_name": "onijs",
"sources": [
"src/main.cpp" ],
"include_dirs": [ "./src/Include" ],
"libraries": [ "-lOpenNI2", "-Wl,-rpath ./" ]
}
]
}
这是我所做的(在 OSX 中工作):
- 创建了一个名为的节点项目文件夹
onijs/
- 下载并解压 OpenNI
- 复制了内容
Redist
目录进入onijs/
(Redist
有一个目录OpenNI2
所以现在我有onijs/OpenNI2
其中有一些驱动程序)。
- 复制了
Includes
文件夹到onijs/src/
- 将基本的“Hello World”复制到
onijs/src/main.cpp
- 放置了我的
binding.gyp
文件输入onijs/
- 在我做的终端中
cd /pathTo/onijs/
然后跑了node-gyp configure
,效果很好
- 然后我跑了
node-gyp build
,然后它吐了。
错误是“ld:找不到 -lOpenNI2 的库。”
我在这里采取了错误的方法吗?我已经尝试过没有-l
and -Wl, -rpath ./
在库声明中,但它仍然无法构建。
几个快速选项
如果 OpenNI2 是单个动态库,您可以直接添加到库列表中
/path/to/libOpenNI2_file
如果 OpenNI2 是软件包的一部分,您可以使用 pkg-config 来获取库
pkg-config --libs OpenNI2
有关此特定库的更多文档位于OpenNI http://www.openni.org/openni-sdk/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)