自制软件 + opencv + libpng 的错误
Error with homebrew + opencv + libpng
在Mac OS Maverick上,我已经安装了带有brew install opencv
的OpenCV
我创建了一个简单的程序(从本教程复制而来)。编译工作正常,但在运行可执行文件时出现以下错误:
dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
Referenced from: /usr/local/lib/libopencv_highgui.2.4.dylib
Reason: Incompatible library version: libopencv_highgui.2.4.dylib requires version 33.0.0 or later, but libpng16.16.dylib provides version 32.0.0
Trace/BPT trap: 5
我检查libpng
是否通过brew install libpng
正确安装,并运行了brew upgrade
以确保一切都是最新的。
运行locate libpng16.dylib
返回:
/Applications/GIMP.app/Contents/Resources/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.10/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.12/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.13/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.15/lib/libpng16.16.dylib
/usr/local/lib/libpng16.16.dylib
知道吗?
最好的解决方案是完全卸载libpng并重新安装它:
$ sudo brew uninstall libpng
$ sudo rm '/usr/local/bin/libpng-config'
$ for i in `brew link --overwrite --dry-run libpng`; do sudo rm $i; done
$ sudo brew install libpng
如果您需要安装 opencv:
$ sudo brew tap homebrew/science
$ sudo brew install opencv
Homebrew 应该确保安装正确的依赖项。但是,您可能在不同的路径上安装了多个版本的libpng16
。看看...
/usr/lib
/opt/local/lib
如果您在这些位置找到库的任何版本,则它们可能会导致在程序启动时加载错误的库。 作为快速修复,您可以尝试在命令行中的程序名称前键入DYLD_LIBRARY_PATH=/usr/local/lib
。从长远来看,您可能需要完全删除冲突的版本。
这个答案适用于通过 Conda 安装的 OSX 用户,更具体地说是 conda-forge 频道(我不确定其他人)。
Conda 最终在环境中安装了自己的 libpng,您可以使用 conda upgrade libpng
更新它。
我想这基本上是 conda-forge 上的 opencv 配方的一个错误。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- 运行 libpng 应用程序时出现运行时错误
- 如何解决libpng函数已经定义的错误
- SDL_Image libpng 错误:不是 PNG 文件
- libpng 错误:读取错误
- libpng错误不会被try/catch块捕获
- libpng:写入png失败:在标头写入错误时停止
- C++libPNG-简单初始化错误
- 自制软件 + opencv + libpng 的错误
- libpng错误:读取错误(Visual Studio 2010)
- 尝试使用 libpng 加载图像时在 Windows 上出现运行时错误
- 当从内存加载PNG时,Libpng错误无效的块类型