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] ]