node.js - 无法使用 nw-gyp 重建 node-opencv

标签 node.js opencv node-webkit

我正在尝试重建 node-opencv 以与 node-webkit 一起使用。为此,您需要使用 nw-gyp但我遇到了一些错误。您能否告诉我这可能是为什么?

[~/nw_cv/node_modules/opencv] nw-gyp rebuild --target=0.9.2
gyp info it worked if it ends with ok
gyp info using <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="244a5309435d5464140a15160a16" rel="noreferrer noopener nofollow">[email protected]</a>
gyp info using <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a64656e6f4a3a243b3a24383c" rel="noreferrer noopener nofollow">[email protected]</a> | darwin | x64
gyp info spawn python
gyp info spawn args [ '/usr/local/lib/node_modules/nw-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/moog/nw_cv/node_modules/opencv/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/local/lib/node_modules/nw-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/moog/.nw-gyp/0.9.2/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/moog/.nw-gyp/0.9.2',
gyp info spawn args   '-Dmodule_root_dir=/Users/moog/nw_cv/node_modules/opencv',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CXX(target) Release/obj.target/opencv/src/init.o
In file included from ../src/init.cc:2:
../src/Point.h:13:59: error: unknown type name 'AccessorInfo'
      static Handle<Value> GetX(Local<String> prop, const AccessorInfo &info);
                                                          ^
../src/Point.h:14:59: error: unknown type name 'AccessorInfo'
      static Handle<Value> GetY(Local<String> prop, const AccessorInfo &info);
                                                          ^
../src/Point.h:15:84: error: unknown type name 'AccessorInfo'
      static void RaiseImmutable(Local<String> property, Local<Value> value, const AccessorInfo& info);
                                                                                   ^
3 errors generated.
make: *** [Release/obj.target/opencv/src/init.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/nw-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 12.4.0
gyp ERR! command "node" "/usr/local/bin/nw-gyp" "rebuild" "--target=0.9.2"
gyp ERR! cwd /Users/moog/nw_cv/node_modules/opencv
gyp ERR! node -v v0.10.26
gyp ERR! nw-gyp -v v0.12.2
gyp ERR! not ok 

谢谢!

最佳答案

如您所见,编译器找不到类型AccessorInfo。那是因为 v8 API 中不再有这样的类。 node-webkit v0.9.2 基于 Node 0.11.x 分支,因此由于 v8 API 更改,某些 native 插件可能无法编译或正常工作。在这些情况下,您需要使用node-webkit 0.8.x分支。

关于node.js - 无法使用 nw-gyp 重建 node-opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23669613/

相关文章:

javascript - 如何通过异步等待使用 map 数据

node.js - 如何运行 Node 而不卡在 Node 命令提示符中

node.js - Node-webkit 的跨平台 html 到 pdf 库

node.js - 第一次使用 DiskDB 时出现意外的输入错误结束

RFC3986 之前的 URL 的 Node.js URL 编码(使用 + 与 %20)

node.js - Cypress 在浏览器外部执行 API 调用

c++ - 是否可以删除 OpenCV 中的轨迹栏?

c++ - 从 JPG opencv 制作 avi 文件

opencv - opencv关闭相机

macos - 使用节点 webkit 在 Mac OS 上单击 "x"时关闭窗口但不是应用程序