Es sieht so aus, als würde Ihre Anwendung einen .so
dynamisch verknüpfen Bibliotheksdatei, die an einem anderen Ort als dem von Ihnen verwendeten Header installiert ist. Sie können ldd <binary>
um herauszufinden, welche .so
Ihre Binärdatei aufnimmt, und holen Sie sich dann die Header-Datei aus diesem Verzeichnis (sofern es sich nicht um ein Systemverzeichnis handelt) anstelle des von Ihnen verwendeten. Sie würden dies tun, indem Sie Ihren -I
ändern Flag zur Kompilierzeit. Andernfalls denke ich, dass Sie libpng-1.4.3
installieren müssen damit Sie gegen seine Header kompilieren können.
Mark B hat es ja schon erklärt. Jetzt nochmal für Matteo
Ihr Linker nimmt das erste Erscheinen von libpng auf. das scheint in OpenCV verschachtelt zu sein. Schau mal in dein Makefile und stell deine lokale Version vor das Include von OpenCV in den Includes. In meinem Fall:
-I/usr/include/libpng12 -lpng12 [ ... ] -L/usr/local/lib -lopencv_core