Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
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