У меня есть приложение, которое зависит от множества библиотек (не мы все). Большинство этих библиотек устанавливаются через менеджер пакетов. Для тех, которые не являются, я перекомпилировал их, но я все еще получаю ту же ошибку несовместимости 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