Undefined reference sur programme très simple
Une fois que j'ai installé Ubuntu 11.10, étrange message d'erreur s'affiche. Je veux utiliser GD avec mon programme en C, j'ai donc installé le paquet "libgd2-xpm-dev". Tout a été installé - fichiers gd.h et libgd.un sont dans "/usr/include" et dans "/usr/lib". Donc, j'ai essayé de compiler programme simple avec GD.
#include <stdio.h>
#include <gd.h>
int main()
{
gdImagePtr im, im_clear;
int black, white;
FILE *out1;
im = gdImageCreate(100, 100);
im_clear = gdImageCreate(100, 100);
white = gdImageColorAllocate(im, 255, 255, 255);
black = gdImageColorAllocate(im, 0, 0, 0);
return 0;
}
$ gcc -lgd gd.c
/tmp/cc6LReuX.o: In function `main':
gd2.c:(.text+0x19): undefined reference to `gdImageCreate'
gd2.c:(.text+0x31): undefined reference to `gdImageCreate'
gd2.c:(.text+0x59): undefined reference to `gdImageColorAllocate'
gd2.c:(.text+0x81): undefined reference to `gdImageColorAllocate'
Attendez, quoi? Ok, nous allons vérifier quelque chose.
# Let's sure the lib was found.
$ gcc -lgd_something gd.c
/usr/bin/ld: cannot find -lgd_something
# Lets sure we made no mistake with the symbol's name
$ nm /usr/lib/libgd.a
...
00000dc0 T gdImageColorAllocate
...
000003b0 T gdImageCreate
# So, everything should be ok
$ gcc -lgd gd.c
/tmp/cc6LReuX.o: In function `main':
gd2.c:(.text+0x19): undefined reference to `gdImageCreate'
gd2.c:(.text+0x31): undefined reference to `gdImageCreate'
gd2.c:(.text+0x59): undefined reference to `gdImageColorAllocate'
gd2.c:(.text+0x81): undefined reference to `gdImageColorAllocate'
$ echo $LD_LIBRARY_PATH
# Nothing
Et je ne sais pas ce que je vais faire. Est-ce une erreur de gcc ou je fais quelque chose de mal. Sur mon ancien os (Ubuntu 10.04), tout fonctionne bien.
Quel fichier dois-je montrer pour vous?
double possible de linker me dit qu'il ne peut pas résoudre les symboles, mais ils sont là?
OriginalL'auteur lanus | 2011-12-07
Vous devez vous connecter pour publier un commentaire.
Changement:
:
(Raison: lien importance de l'ordre !)
Oh, et ajouter
-Wall
pendant que vous y êtes - cela me peine grandement à chaque fois que je vois des gens de la compilation avec les avertissements désactivé.Merci - qui aide à soulager la douleur. 😉
OriginalL'auteur Paul R