Sembra che la tua applicazione stia collegando dinamicamente un .so
library file installato in un posto diverso dall'intestazione che stai utilizzando. Puoi ldd <binary>
per capire quale .so
il tuo binario sta raccogliendo, quindi prendi il file di intestazione da quella directory (a meno che non sia una directory di sistema) invece di quella che stai utilizzando. Lo faresti cambiando il tuo -I
flag in fase di compilazione. Altrimenti penso che dovrai installare libpng-1.4.3
così puoi compilare contro le sue intestazioni.
Mark B l'ha già spiegato. Ora di nuovo per Matteo
il tuo linker raccoglie la prima apparizione di libpng. che sembra essere annidato in OpenCV. Dai un'occhiata al tuo Makefile e metti la tua versione locale prima l'inclusione di OpenCV negli Include. Nel mio caso:
-I/usr/include/libpng12 -lpng12 [ ... ] -L/usr/local/lib -lopencv_core