自制软件+ opencv + libpng出错

sda*_*bet 7 c++ macos opencv libpng

在Mac OS Maverick上我安装了OpenCV brew install 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
Run Code Online (Sandbox Code Playgroud)

我检查了它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
Run Code Online (Sandbox Code Playgroud)

任何的想法?

gmb*_*ard 2

Homebrew 应确保您安装了正确的依赖项。libpng16但是,您可能在不同路径安装了多个版本。看看...

/usr/lib
/opt/local/lib
Run Code Online (Sandbox Code Playgroud)

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

  • 刚刚有相同的更新“brew update &&brew update libpng”对我有用。从 `libpng.1.6.15` 升级到 `libpng.1.6.16` 我的问题也与 opencv 相关。 (4认同)