c++ - 应该如何编写 binding.gyp 以使用 OpenNI 构建 Node.js 插件?

标签 c++ node.js openni node-gyp

我正在尝试构建一个使用 OpenNI 的 Node.js 插件。我之前没有使用过 Node-gyp,所以我尝试设置 binding.gyp 文件,以便它包含 OpenNI 库作为构建的一部分。我实际编译的代码只是 Hello World example .

我正在使用的 binding.gyp 文件基于 NUIMotion 中的文件。在 Github 上,它正在做类似的事情。这是我的:

{
    "targets": [
    {
        "target_name": "onijs",
        "sources": [
            "src/main.cpp" ],
        "include_dirs": [ "./src/Include" ],

        "libraries": [ "-lOpenNI2", "-Wl,-rpath ./" ]
    }
  ]
}

这是我所做的(在 OSX 中工作):

  • 创建了一个名为 onijs/ 的 Node 项目文件夹
  • 下载并解压 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: library not found for -lOpenNI2.”

我是不是采取了错误的方法?我已经在库声明中没有 -l-Wl, -rpath ./ 的情况下进行了尝试,但它仍然无法构建。

最佳答案

几个快速选项

如果 OpenNI2 是一个单独的动态库,您可以直接添加到您的库列表中

/path/to/libOpenNI2_file

如果 OpenNI2 是包的一部分,您可以使用 pkg-config 来获取库

pkg-config --libs OpenNI2

这里有关于这个特定库的更多文档 OpenNI

关于c++ - 应该如何编写 binding.gyp 以使用 OpenNI 构建 Node.js 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16737863/

相关文章:

c++ - QxtGlobalShortcut 的问题

node.js - npm-link 库上的无效 Hook 调用

javascript - 如何在 Node.js 中使用 Promise 对 API 进行递归请求?

c++ - 将 rgb 深度图像转换为 oni 文件

C++ LNK2001 : unresolved external symbol problem

c++ - RapidJSON C++将JSON对象附加到文件的高效且可扩展的方法

c++ - C/C++字符串内存分配

node.js - 处理 React 和 Express 之间的路由请求

c++ - 使用 OpenCV 和 OpenNI 测量两点之间的距离

java - SimpleOpenNI 记录和回放用户跟踪数据