我有一个依赖于大量库的应用程序(不是我们所有人)。大多数这些库都是通过包管理器安装的。对于那些不是的,我已经重新编译了它们,但我仍然得到相同的 libpng 不兼容错误。
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.3
这是一个错误,因为结果缓冲区是空的。我如何知道哪个库链接到新库以及哪个库链接到旧库?
ldd <executable-name>
...
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f5a0660f000)
...
运行locate png.h
给了我几个系统级文件
/usr/include/png.h
/usr/include/libpng12/png.h
所有这些都是1.2.44。
我正在运行 Ubuntu 11.04 x86-64。
更新:原来 OpenCV 附带了他们自己的 libpng 版本,即 1.4.3