Bonjour à tous,
Pour l'un de mes projets, j'ai besoin d'utiliser la librairie "libpng" qui permet la lecture/écriture d'images au format PNG. (j'utilise VC++ 2005 Express)
Dans un premier, pour tester cette librairie, j'ai écrit un programme qui lit simplement la taille de ce fichier (width & height)... Voici le programme :Et lors de la compilation, j'obtiens une erreur "LNK2019" pour chaque fonction de la libraire "libpng"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 #include <stdlib.h> #include <stdio.h> #include "../lpng/png.h" using namespace std; int main() { FILE * fp; //typedef byte png_byte; png_byte magic[8]; png_uint_32 width, height; /*---- open image file ----*/ fp = fopen("lena_512_color.jpg","r"); if (!fp) //error during file opening return 0; /*---- read magic number ----*/ fread(magic, 1, sizeof(magic), fp); /* check magic number - PNG ? */ if (!png_check_sig(magic, sizeof(magic))) { fclose(fp); return 0; } /*---- struct png_struct & png_info creation ----/ /* create a png_struct struct */ png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!png_ptr) { fclose(fp); return 0; } /* create a png_info struct */ png_infop info_ptr = png_create_info_struct (png_ptr); if (!info_ptr) { fclose (fp); png_destroy_read_struct (&png_ptr, NULL, NULL); } /*---- initialisation ----*/ /* setup libpng for using standard C fread() function with our FILE pointer */ png_init_io (png_ptr, fp); /* tell libpng that we have already read the magic number */ png_set_sig_bytes (png_ptr, sizeof (magic)); /* read png info */ png_read_info (png_ptr, info_ptr); /* get width & height information */ width = png_get_image_width(png_ptr, info_ptr); height = png_get_image_height(png_ptr, info_ptr); /* display this information */ printf("Width = %u - Height = %u \n", width, height); return 1; }Je précise que j'ai ajouté le chemin de mes différents include au bon endroit (VC++ directory). De plus lors de la compilation il trouve bien les fichiers .h.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1>Linking... 1>essai.obj : error LNK2019: unresolved external symbol _png_get_image_height referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_get_image_width referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_read_info referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_set_sig_bytes referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_init_io referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_destroy_read_struct referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_create_info_struct referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_create_read_struct referenced in function _main 1>essai.obj : error LNK2019: unresolved external symbol _png_check_sig referenced in function _main
Quelqu'un aurait-il une idée de l'origine du problème? Je viens de passer 2 jours sans aucune avancée...
Merci d'avance...
Arnaud
Partager