[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux] Compilation SDL
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: listmaster@linuxbe.org ]