我正在尝试构建一个使用QT和OpenCV的程序。它编译正确,但当我运行应用程序时,我得到:
Starting /Users/Me/MyApp/Contents/MacOS/Foo...
dyld: Library not loaded: /usr/local/lib/libavformat.54.29.104.dylib
Referenced from: /usr/local/lib/libopencv_highgui.2.4.3.dylib
Reason: image not found
The program has unexpectedly finished.
/Users/Me/MyApp/Contents/MacOS/Foo exited with code 0
我查看了/usr/local/lib
,文件已正确链接到那里,问题是libav
现在版本较高而opencv
没有反映这一点(例如,在十六进制编辑器中查看opencv dylib,我发现它需要上面所说的内容,但实际上我的lib文件夹中的内容是例如版本54.59.106
。我已经尝试了运行brew update/upgrade
并重新连接所有内容,但没有运气。
我可以通过复制有问题的dylib并将它们重命名为旧版本来快速修复。这确实会导致程序正确打开,但这有点像黑客。
显然我可以通过重新安装相关库来解决这个问题,但这需要花费宝贵的时间..从这个线程看来它似乎是唯一的选择,但我不知道是否已经修复了它:{{3} }
答案 0 :(得分:1)
似乎解决这个问题的唯一方法是运行:
brew rm ffmpeg && brew install ffmpeg
brew rm opencv && brew install opencv
可能不需要重拍ffmpeg,但我没有看到任何伤害。事实证明,当一个软件包更新到主要的新版本而另一个软件包尚未更新时,有时会发生这种情况。