dyld:懒惰符号绑定失败,opencv

时间:2014-05-16 18:31:06

标签: javascript c++ node.js opencv

尝试node-opencv正在工作,我遇到了一些我无法解读的错误。非常感谢任何有用的见解。

每当我尝试运行其中一个示例时,都会发生这种情况。在我自己的尝试中,我可以创建一个cv.VideoStream(0),但是一旦我尝试创建一个对象检测流或从相机中读取它就会抛出相同的错误。

[~/opencvtest/node_modules/opencv/examples] node camera

dyld: lazy symbol binding failed: Symbol not found: __ZN2cv7imwriteERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKNS_11_InputArrayERKNS0_6vectorIiNS4_IiEEEE
  Referenced from: /Users/moog/opencvtest/node_modules/opencv/build/Release/opencv.node
  Expected in: dynamic lookup

dyld: Symbol not found: __ZN2cv7imwriteERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKNS_11_InputArrayERKNS0_6vectorIiNS4_IiEEEE
  Referenced from: /Users/moog/opencvtest/node_modules/opencv/build/Release/opencv.node
  Expected in: dynamic lookup

Trace/BPT trap: 5

我尝试重新安装OpenCV并重建node-opencv,但我遇到了同样的错误。

node-opencv: v0.5.0
opencv: v2.4.9
node.js: v0.10.28
osx: v10.9.3

谢谢!

1 个答案:

答案 0 :(得分:0)

我只是通过以下步骤解决此问题:

  1. 删除所有opencv内容。...类似brew uninstall opencv
  2. 再次通过brew重新安装opencv并添加

    之类的回声
    export PATH="/usr/local/opt/opencv@3/bin:$PATH"
    export LDFLAGS="-L/usr/local/opt/opencv@3/lib"
    export CPPFLAGS="-I/usr/local/opt/opencv@3/include" 
    

    其中opencv @ 3是我的.bash_profile的opencv版本

  3. 将opencv与brew link --overwrite --force opencv@3链接。

我的问题是我没有删除旧的opencv文件,因此我需要brew link --force

希望我能帮忙。