11
votes

libpng AVERTISSEMENT: version de libpng incompatible dans l'application et la bibliothèque

J'ai une application qui dépend d'une pléthore de bibliothèques (ne pouvons-nous pas tous). La plupart de ces bibliothèques sont installées via le gestionnaire de packages. Pour ceux qui ne sont pas, je les ai ré-compilés, mais je reçois toujours la même erreur d'incompatibilité libpng. xxx

C'est une erreur car le tampon résultant est vide. Comment savoir quelle bibliothèque est reliée à la nouvelle et quelle bibliothèque est liée à l'ancien? xxx

exécuté localiser png.h donne Moi un couple de fichiers au niveau du système xxx

Tous sont 1.2.44.

Je cours Ubuntu 11.04 x86-64.

mise à jour: active les navires OpenCV avec leur propre version de libpng qui est 1.4.3


1 commentaires

@DAT CHU - Je suis confronté à votre même problème, car vous avez découvert que OpenCV expédie sa propre version de libpng Que dois-je faire pour compiler correctement mon code? Laquelle des 2 suggestions ci-dessous avez-vous suivi? Merci pour votre aide!


4 Réponses :


5
votes

On dirait que votre application relie dynamiquement un fichier de bibliothèque .so quelque part autre que l'en-tête que vous utilisez. Vous pouvez ldd pour déterminer quel .so votre binaire est en train de choisir, puis saisissez le fichier d'en-tête de ce répertoire (sauf s'il s'agit d'un répertoire système) au lieu de celui que vous utilisez. Vous le feriez en modifiant votre drapeau -I à l'heure de la compilation. Sinon, je pense que vous devrez installer libpng-1.4.3 afin que vous puissiez compiler contre ses en-têtes.


0 commentaires

0
votes

Comme indiqué dans votre question, OpenCV fait expédié avec sa propre version de libpng, mais vous pouvez choisir d'utiliser la version de libpng installée sur votre système. Vous ne pouvez le faire que lorsque vous construisez OPENCV à partir de la source: Désactivez Build_png lors de l'exécution de la cmake.


0 commentaires

1
votes

Mark B l'a déjà expliqué. Maintenant Aggain pour Matteo

Votre lieur reprend la première apparition de libpng. qui semble être imbriqué à OpenCV. Regardez-vous dans votre maquillage et mettez votre version locale avant L'inclusion de l'OPENCV dans l'inclusion. Dans mon cas:

-i / usr / include / libpng12 -lpng12 -L -L / usr / local / lib -lopencv_core


0 commentaires

0
votes

Raison: opencv / cmakelistes.txt fichier: xxx

 Entrez la description de l'image ici

façons : compilez à nouveau votre opencv et utilisez ce paramètre suivant: xxx


0 commentaires