Quando si deve lavorare con un progetto molto esteso, formato da decine di file sorgente, la compilazione ed il collegamento dei vari moduli può diventare un'operazione molto laboriosa, specialmente se si vuole evitare che siano ricompilati i file sorgenti che non sono stati modificati. Questo articolo mostra l'utilizzo del programma di utilità make che consente di gestire agevolmente questo genere di situazioni. Prosegue...

Vota questo articolo per primo

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Iniziamo con il codice più classico che esista e cerchiamo di compilare il programma:

#include <stdio.h>
int main (void)
{
  printf ("Hello, world!\n");
  return 0;
}

Se assumiamo che il programma sia memorizzato in un file denominato hello.c, il comando per compilarlo sarà il seguente:

gcc -Wall hello.c -o hello

Il comando precedente ha come effetto la compilazione del file hello.c e la produzione di un file eseguibile denominato "hello". Il nome del file oggetto viene specificato tramite l'opzione -o; questa opzione è generalmente l'ultima della riga di comando e se omessa ha come consequenza la generazione di un file oggetto con il nome predefinito "a.out". L'opzione -Wall abilita la visualizzazione di tutti i messaggi di warning. Per eseguire il programma è necessario digitare il nome del file eseguibile preceduto dal suo percorso; in questo caso:

$ ./hello

Nel caso di programmi di grandi dimensioni, per semplificare l'editazione e la comprensione del codice, è comune dividere il sorgente su più file; questa situazione comporta la compilazione separata di ciascun file del progetto. Supponiamo, ad esempio, che il progetto sia composto da file1.c e file2.c, allora per compilare e linkare l'applicazione in un unico file eseguibile di nome test, è sufficiente digitare il comando:

$ gcc -Wall file1.c file2.c -o test

Notare che eventuali file header inclusi nei sorgenti non devono essere specificati nel comando di compilazione.

Supponiamo adesso di aver modificato una funzione implementata nel file file2.c e di voler generare il nuovo eseguibile, in questo caso per evitare inutili perdite di tempo, è possibile ricompilare esclusivamente il file sorgente file2.c, tramite il comando:

$ gcc -Wall -c file2.c

Successivamente per linkare assieme il vecchio file1.c con il nuovo file2.c, si può scrivere:

$ gcc file1.o file2.o -o test

 

Correntemente valutato 4.4 da 5 utenti

  • Currently 4,4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Calendario

<<  settembre 2010  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar
Licenza d'uso
Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:

Licenza Creative Common