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