opencv出现问题:/usr/lib/x86_64-linux-gnu/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.


这个问题困扰了挺久,后来才恍然大悟,特来分享:


错误提示:

最开始我定位在/libpng16.so.16的问题上,可以查来查去也没有结果;后来看到说是zlib和libpng的安装顺序问题,我差点就被带跑偏了。


经过仔细回忆,想起来可能是zlib的版本问题,因为这里指出是ZLIB1.2.9,所以我一查,我安装的是zlib1.2.8,还有一个apt安装的zlib1.2.11,遂从官网下载,安装,解决了问题,指令代码如下

1 wget http://www.zlib.net/fossils/zlib-1.2.9.tar.gz
2 tar -xvf zlib-1.2.9.tar.gz
3 cd zlib-1.2.9
4 mkdir build
5 cd build
6 cmake ..
7 make
8 make install

因为我是在服务器直接登录的root,具体使用的时候,加上sudo即可。


Reference:

zlib库各版本网站:http://www.zlib.net/fossils/