18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Appendice B<br />

Il compilatore gcc<br />

Esistono vari compilatori C disponibili sia sia open che closed source, sia gratuiti che a<br />

pagamento. Inoltre sono disponibili <strong>per</strong> pressochè ogni architettura e <strong>per</strong> ogni sistema<br />

o<strong>per</strong>ativo.<br />

In questo capitolo verrà introdotto brevemente il compilatore gcc, realizzato nel contesto del<br />

progetto GNU.<br />

La scelta di questo compilatore dipende dal fatto che è molto diffuso, è software libero e<br />

quindi, tra gli altri vantaggi, è liberamente scaricabile ed utilizzabile <strong>per</strong> le esercitazioni e <strong>per</strong> la<br />

realizzazione di programmi anche molto complessi. Si pensi <strong>per</strong> esempio che il kernel di Linux è<br />

scritto in C e compilato utilizzando il compilatore gcc.<br />

E’ disponibile in tutte le distribuzioni di Linux, ed esistono varie versioni portate su altri<br />

sistemi o<strong>per</strong>ativi.<br />

B.1 Opzioni più importanti<br />

Il compilatore gcc, come ogni implementazione di cc, riceve opzioni sulla riga di comando.<br />

I file vengono elaborati in base al proprio nome, ovvero:<br />

• se terminano in .c vengono compilati;<br />

• se terminano in .S vengono solo passati all’assemblatore;<br />

• se terminano in .o vengono solo passati al linker.<br />

Le opzioni più importanti del gcc sono riportate in Tabella B.1. In tabella, “file” indica un<br />

nome di file, ogni volta diverso.<br />

Un esempio dell’utilizzo di gcc è il seguente:<br />

gcc -DDEBUG jpegdemo.c -I/usr/local/include -L/usr/local/lib -ljpeg -o jpegdemo<br />

190

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!