首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自制+ opencv + libpng错误

自制+ opencv + libpng错误
EN

Stack Overflow用户
提问于 2015-01-24 10:07:26
回答 3查看 6.8K关注 0票数 7

在Maverick上,我安装了带有OpenCV的brew install opencv

我创建了一个简单的程序(从本教程复制)。编译工作正常,但在运行可执行文件时,我得到以下错误:

代码语言:javascript
复制
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返回:

代码语言:javascript
复制
/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

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-24 10:57:24

自制软件应该确保安装正确的依赖项。但是,您可能在不同的路径上安装了多个版本的libpng16。看看里面..。

代码语言:javascript
复制
/usr/lib
/opt/local/lib

如果在这些位置找到库的任何版本,那么它们可能会导致程序启动时加载错误的版本。作为一个快速修复,您可以尝试在命令行中的程序名之前键入DYLD_LIBRARY_PATH=/usr/local/lib。从长期来看,您可能需要完全删除相互冲突的版本。

票数 2
EN

Stack Overflow用户

发布于 2015-05-25 18:49:01

最好的解决方案是完全卸载libpng并重新安装它:

代码语言:javascript
复制
$ 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:

代码语言:javascript
复制
$ sudo brew tap homebrew/science
$ sudo brew install opencv
票数 4
EN

Stack Overflow用户

发布于 2016-11-16 00:49:37

这个答案是针对通过Conda安装的OSX用户,更具体地说,是conda锻造通道(我不确定其他用户)。

Conda最后在环境中安装了自己的libpng,您可以用conda upgrade libpng更新它。

我猜这基本上是一个错误与opencv食谱上的conda-forge。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28124359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档