Comment construisez-vous et référencez-vous libpng?

Téléchargement de la source et modification de la configuration en Release Library x64 et hit hit. Tout s’est bien passé et a réussi des tests.

Ensuite, j’ai référencé libpng (et zlib pour éviter certaines erreurs arbitraires) dans mon projet et tout se passe bien jusqu’à ce que j’essaie d’utiliser l’une des fonctions libpng. (Je peux utiliser certains des typedefs)

tldr; Je reçois des erreurs aléatoires chaque fois que j’essaie d’utiliser des fonctions libpng

Vous ne pouvez pas trouver beaucoup d’informations sur le libpng, peut-être que je devrais juste abandonner et utiliser une bibliothèque plus conviviale?

Edit: Je configure les répertoires de bibliothèques pour inclure le chemin où se trouvent les bibliothèques libpng et zlib. Et ajouté les noms de bibliothèque à l’entrée Linker (dépendances supplémentaires). Ce que je pense est la méthode standard de référence des bibliothèques dans Visual Studio

Modifier:

png_const_bytep header[8]; FILE* fp = fopen("test.png", "rb"); fread(header, 1, 8, fp); png_sig_cmp(*header, 0, 8); // <--- ERROR, compiles fine without 

Et quelques erreurs:

  1. C4701: variable locale potentiellement non initialisée ‘sig_bit’ utilisée (dans pngread.c)
  2. C2220: avertissement traité comme erreur – pas de fichier ‘exécutable’ généré (dans pngread.c)
  3. LNK1257: la génération de code a échoué

notez qu’aucune d’entre elles ne fait partie de mon code, mais fait partie de libpng

Même problème exactement ici. Doit reconstruire libpng avec “traiter les avertissements comme des erreurs” désactivé. (même si libpng est une lib, mon application effectuait la génération de code link-time, donc générait des erreurs sur le code source de la bibliothèque).

Mettez à niveau votre libpng vers la dernière version (1.2.52, 1.5.18 ou 1.6.9). Le problème avec “sig_bit” a été corrigé.