Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/03/2008, à 23:49

kimlaw95

développement en C avec imlib2

Bonjour à tous

je suis un développeur débutant en C utilisant Code Block, mais j'aimerai développer sans aide dans un éditeur de texte et compiler à la main etc...
J'utilise Imlib2 la lib d'enlightenment celle ci est installée donc mon répertoire home (donc pas dans les libs système) j'aimerai savoir comment dire à gcc ou ce trouve ces librairies je pense que mon message d'erreur est du à ça.

Merci

source : ---------------------------------------------------------                                                       

#include <stdio.h>
#include </home/kimlaw/enlightenment/repositories/e17/libs/imlib2/src/lib/Imlib2.h>
#include <X11/Xlib.h>
#include <string.h>

int main (int argc, char **argv){
                Imlib_Image image;
                image = imlib_load_image(argv[1]);

        if(image){
                char *tmp;
                imlib_context_set_image(image);
                tmp = strrchr(argv[2],'.');

                        if (tmp){
                        imlib_set_image_format(tmp + 1);
                        imlib_save_image(argv[2]);
                        }
        }
}


erreurs -------------------------------------


kimlaw@kimlaw-laptop:~/workspace/manual_c$ gcc fichier.c > erreur.txt
/tmp/ccY3pOc0.o: dans la fonction « main »:
fichier.c:(.text+0x23): référence indéfinie vers « imlib_load_image »
fichier.c:(.text+0x37): référence indéfinie vers « imlib_context_set_image »
fichier.c:(.text+0x67): référence indéfinie vers « imlib_set_image_format »
fichier.c:(.text+0x7a): référence indéfinie vers « imlib_save_image »
collect2: ld returned 1 exit status

#2 Le 14/03/2008, à 07:48

ajira86

Re : développement en C avec imlib2

Il y a une chose que je ne comprend pas, tu veux compiler ton programme sans aide avec un éditeur de text et compiler à la main mais tu utilise l'environement de développement CodeBlocks ?

Si ta commande est bien : gcc fichier.c > erreur.txt
Alors tu ferais bien de regarder le manuel de gcc en tappant la commande : man gcc

Il y a énormément d'options à choisir, il me semble avoir vu que -l sert à spécifier les librairies utilisées

Hors ligne

#3 Le 14/03/2008, à 10:19

Le Farfadet Spatial

Re : développement en C avec imlib2

Salut à tous !

   Kimlaw, remplace la ligne :

#include </home/kimlaw/enlightenment/repositories/e17/libs/imlib2/src/lib/Imlib2.h>

Par le ligne suivante :

#include "/home/kimlaw/enlightenment/repositories/e17/libs/imlib2/src/lib/Imlib2.h"

À bientôt.

                                                                                                                                                Le Farfadet Spatial

Hors ligne

#4 Le 14/03/2008, à 10:49

Karl_le_rouge

Re : développement en C avec imlib2

Et c'est quand que tu lies ta bibliothèque ?
Apparemment, ta bibliothèque est installé quelque part dans ton $HOME [1], donc ld il n'a aucune idée où se trouve ta bibliothèque et en plus, tu ne lui indiques même pas qu'il doit lier ton code à la bibliothèque en question !
Il te faudra également lier à la libX11 d'après tes headers.

Alors, man gcc fissa et tu regardes les options -l et L !



[1] saimal ! fais les choses proprement ! /usr/local et /opt sont là pour ça !

Hors ligne

#5 Le 14/03/2008, à 12:19

Le Farfadet Spatial

Re : développement en C avec imlib2

Salut à tous !

Karl_le_rouge a écrit :

saimal ! fais les choses proprement ! /usr/local et /opt sont là pour ça !

On peut même en rajouter une couche : les paquets .deb ne sont pas fait pour rien, ils font une installation propre en assurant la cohérence du système...

   À bientôt.

                                                                                                                         Le Farfadet Spatial

Hors ligne

#6 Le 14/03/2008, à 14:19

Benzo

Re : développement en C avec imlib2

déjà remplace

#include </home/kimlaw/enlightenment/repositories/e17/libs/imlib2/src/lib/Imlib2.h>

par

#include <Imlib2.h>

et ta ligne de compil :

gcc -I/home/kimlaw/enlightenment/repositories/e17/libs/imlib2/src/lib -L<chemin vers le repertoire de ta lib> -l<le nom de ta lib> fichier.c > blabla ....

-I : définitions des répertoires d'includes
-L : définitions des réprtoires des lib
-l : liens vers les libs


Et s'il a envie de travailler dans son répertoire hom c'est son problème : qui vous dit qu'il a les droits sur les autres répertoires ?

Dernière modification par Benzo (Le 14/03/2008, à 14:20)

Hors ligne

#7 Le 14/03/2008, à 17:12

Le Farfadet Spatial

Re : développement en C avec imlib2

Salut à tous !

Benzo a écrit :

qui vous dit qu'il a les droits sur les autres répertoires ?

OK : bonne remarque.

   À bientôt.

                                                                                                                         Le Farfadet Spatial

Hors ligne

#8 Le 17/03/2008, à 14:58

kimlaw95

Re : développement en C avec imlib2

merci pour vos réponses

je vais me débrouiller avec ca merci smile