C++ C++;:opencv上的libpng冲突

C++ C++;:opencv上的libpng冲突,c++,opencv,g++,libpng,C++,Opencv,G++,Libpng,我试图使用opencv2读取png文件,我得到以下错误 libpng warning: Application built with libpng-1.2.53 but running with 1.6.27 OpenCV Error: Assertion failed (dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)) in resize, file /home/dpk/Desktop/open

我试图使用opencv2读取png文件,我得到以下错误

libpng warning: Application built with libpng-1.2.53 but running with 1.6.27
OpenCV Error: Assertion failed (dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)) in resize, file /home/dpk/Desktop/opencv/opencv/modules/imgproc/src/imgwarp.cpp, line 3484
我的系统上有
libpng 1.6.27
。 Opencv是使用命令
cmake-D BUILD_PNG=OFF/home/dpk/Desktop/Opencv
构建的,以避免Opencv库与我系统中的库之间发生冲突

我编译的程序需要阅读png如下

g++ preProcess.cpp -I/usr/local/include/libpng16 `pkg-config opencv --cflags --libs` -o preProcess
二进制文件上的
ldd
输出为libpng提供了以下内容

libpng16.so.16 => /usr/local/lib/libpng16.so.16 

如何修复此错误?

从OpenCV的
CMakeLists.txt
判断,您必须将
设置为关闭
,而不是
BUILD\u PNG

,这不会完全禁用OpenCV中的PNG支持吗?考虑到用户希望“使用opencv2读取png文件”,这似乎不是很理想……我觉得这正是asker想要的。当然,如果不链接到库,你就不能支持PNG,但我认为asker在他的应用程序中直接使用libpng,而不是通过OpenCV。当我查看repo中的第三方目录时,即使在2010年,libpng的版本也比1.2.53版本更新,所以这似乎不是它的来源。您的系统上是否安装了OpenCV的其他副本,而该副本是意外使用的?
pkg config opencv--cflags--libs
的输出有意义吗?