Pages : 1
#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 !
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 !
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