【发布时间】:2014-10-28 02:51:29
【问题描述】:
OpenCV 曾经在我的 Mac OS(10.9,Mavericks)上运行良好。但是在我升级依赖库libpng之后出现了一些问题。对于一个简单的程序:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
它由 CMake 顺利编译。但是当我运行它时,会弹出错误:
dyld: Library not loaded: /usr/local/opt/libpng/lib/libpng15.15.dylib
Referenced from: /usr/local/lib/libopencv_highgui.2.4.dylib Reason:
image not found
Trace/BPT trap: 5
我检查了目录 /usr/local/opt/libpng/lib/。似乎当前版本的 libpng 是 16,因为有符号链接,例如
libpng.a libpng16.16.dylib libpng16.dylib
libpng.dylib libpng16.a pkgconfig
我试过“brew upgrade opencv”,opencv是最新版本(2.4.9)。通常 opencv 应该支持 libpng16,因为它是最新的。我不知道 libpng15 和 libpng16 之间的区别。我应该卸载这个 libpng16 并安装 libpng15 吗?该怎么做?
【问题讨论】: