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.

# ar t /usr/lib/libm.a<br />

si ottiene il seguente output (una parte):<br />

...<br />

e_acos.o<br />

e_acosh.o<br />

e_asin.o<br />

e_atan2.o<br />

e_atanh.o<br />

e_cosh.o<br />

e_exp.o<br />

e_fmod.o<br />

...<br />

i quali corrispondono ai nomi dei file che contengono il codice compilato delle rispettive funzioni.<br />

14.1.2 Esempio di utilizzo del comando ar<br />

Per illustrare l’utilizzo di librerie esterne si ricorre all’esempio del programma prog presentato<br />

nel Capitolo 13, cioè di un programma composto da più file sorgente, che vengono compilati in<br />

più file oggetto e quindi linkati <strong>per</strong> costituire il programma eseguibile.<br />

Il programma prog, il cui file sorgente principale è il file prog.c, richiede l’uso di due funzioni<br />

definite nei file func1. e func2.c.<br />

Una volta compilati i singoli file oggetto func1.o e func2.o, la generazione dell’eseguibile<br />

prevede di linkare tutti i file oggetto con il seguente comando:<br />

$ gcc -o prog prog.c func1.o func2.o<br />

Si supponga ora di voler includere i file oggetto all’interno di una libreria e di voler utilizzare<br />

la libreria <strong>per</strong> compilare il programma prog. Per fare ciò è possibile utilizzare il programma ar<br />

come segue:<br />

$ ar q libprog.a func1.o<br />

ar: creating libprog.a<br />

$ ar q libprog.a func2.o<br />

$<br />

L’opzione q indica ad ar di appendere il file oggetto <strong>alla</strong> fine della libreria di nome libprog.a.<br />

Dal momento che inizialmente la libreria non esiste, il primo comando crea il file libprog.a e<br />

vi inserisce il file oggetto func1.o. Il secondo comando semplicemente aggiunge il file oggetto<br />

func2.o <strong>alla</strong> libreria già esistente.<br />

E’ possibile verificare il contenuto della libreria col comando<br />

$ ar t libprog.a<br />

func1.o<br />

func2.o<br />

Ora si può utilizzare la libreria <strong>per</strong> la compilazione del programma con il comando<br />

$ gcc -Wall prog.c ./libprog.a -o prog<br />

138

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

Saved successfully!

Ooh no, something went wrong!