Merci pour les precisions. En mettant tout bout a bout et avec les docs, je commence a comprendre ce qui se passe.
"Examens", c'est quoi encore ce truc ;-))))) Philippe Le Jeudi 21 Juin 2001 08:41, Gerd-Christian Michalke a écrit : > On Thu, 21 Jun 2001, CHARLIER Philippe wrote: > > Hem, > > Yep ! > > > > cc -I/usr/include/SDL -D_REENTRANT -c -o mouse.o mouse.c > > > cc -o cmouse mouse.o -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lm > > > > > > Je les ai essayees sur mon programme : OK ca marche. > > > > > > Probleme 1 : Je ne les comprends pas (c'est un demi probleme). > > > > > > Probleme 2 : Meme en sucant mon pouce, j'aurais ete incapable de les > > > trouver. Comment faire pour "deviner" les options a utiliser lorsque > > > l'on veux compiler un programme personnel. > > D'entree de jeux: > > (si je dis une betise, corrigez moi) > > Il faut separer le moment de la compilation (ligne 1) du linkage (ligne > 2). En fait, dans le premiere ligne, tu lui demande (grace a l'option -c) > de traduire ton code c en binaire. Logiquement, sans l'instruction > -Ibla/..., il aurait du te donner un message du genre > > In file bla.c > chose.h not found at line Y > > > (en fait, les repertoires a partir des quels tu pourra faire une > instruction de type > #include <youkoulele.h> > > Qu'en retenons nous: -I/bla/ permet de specifier le chemin ou se trouvent > les fichieres include. La directive -D_REENTRANT est pour specifeir un > symbole de compilation (comme qd tu compiles un kernel; il met un truc du > genre -D_KERNEL_ -- chai pu, pas de linux sous la main) qui sera exploite > par des instructions de type #ifdef YO > > Dans la ligne 2, on procede au linkage, c'est a dire l'edition des liens > avec des libraires existantes (en tres simplifie, dans le cadre des > librairies dynamiques, les references a la table des symboles dans les > libs.) > > Iic, vec la directive -L/yo/ tu lui specifie ou trouver les libs en > question, et -lyo permet de faire l'edition des liens avec la libraire > libyo.so.x.y > > A partir de -W, je sais pas ;-( > > En conclusion, que devons nous retenir pour simplifier la compilation > - specifier le chemin des includes avec -I > - le chemin des libs avec -L > - et les librairies dont se servira le programme au moyen de -lyo ou le > fichier librairie sera libyo.so > > Hope it helps > > Gerd > > > Alleie, la dessus, encore bon amusement pour les gens qui sont encore en > examen (plus que deux ! -- aaaaagh) > > > > Merci d'avance. > > > > > > Philippe > > > > > > PS. : J'etais deja "tombe sur le cul" il y a quelques temps lorsque je > > > n'arrivais pas a compiler un programme utilisant "math.h" et que j'ai > > > decouvert qu'il fallait le parametre -lm a la commande gcc. > > > > > > RePS : Il y a bien "man gcc", mais bon, avant d'arriver au bout je vais > > > passer 20 ans a comprendre le compilateur et 0 a programmer ... or > > > c'est maintenant que je veux programmer ;-) > > [ Soyez précis dans vos sujets svp afin de déterminer directement ] > [ le type de demande... ] > [ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ] > [ http://LinuxBe.org Contact: [EMAIL PROTECTED] ] [ Soyez précis dans vos sujets svp afin de déterminer directement ] [ le type de demande... ] [ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ] [ http://LinuxBe.org Contact: [EMAIL PROTECTED] ]