Zdá se, že vaše aplikace dynamicky propojuje .so
soubor knihovny nainstalovaný jinde než v záhlaví, které používáte. Můžete ldd <binary>
zjistit, který .so
váš binární soubor sbírá, a pak vezměte hlavičkový soubor z tohoto adresáře (pokud to není systémový adresář) místo toho, který používáte. Udělali byste to změnou -I
příznak v době kompilace. Jinak si myslím, že budete muset nainstalovat libpng-1.4.3
takže můžete kompilovat podle jeho záhlaví.
Mark B to již vysvětlil. Nyní znovu pro Mattea
váš linker zachytí první výskyt libpng. který se zdá být vnořený do OpenCV. Podívejte se do svého souboru Makefile a uveďte svou místní verzi před zahrnutí OpenCV do Zahrnuje. V mém případě:
-I/usr/include/libpng12 -lpng12 [ ... ] -L/usr/local/lib -lopencv_core