Crea sito
Facebook GooglePlus Twitter
Diaspora YouTube LinkeIn

Compilazione di un programma C

Tutte le guide per C, C#, C++, Objective-C le trovi Qui

Compilazione di un programma C

Messaggio da leggereda florin88 il 21/03/2012, 4:44

Continuiamo la nostra guida con il capitolo dedicato alla Compilazione di un Programma scritto in linguaggio C.

Come abbiamo già detto in passato un programma in C può essere scritto anche con un semplice editor di testi. Infatti per i sistemi Windows possiamo usare il semplice Blocco note oppure qualcosa di simile. Mentre per i sistemi operativi Linux potreste utilizzare gEdit oppure Emacs. Per quello che riguarda i sistemi operativi Mac OS X potrete utilizzare textEdit.

Ovviamente, per poter vedere il risultato del codice sorgente appena scritto, dobbiamo prima salvare il file con un'estensione .c. Il più classico degli esempi che troverete più avanti nella guida avrà il seguente nome => hello.c.

Quindi, una volta scritto il codice sorgente con tutte le funzioni che deve fare il nostro programma e dopo averlo salvato in un file con estensione .c, non ci resta altro da fare che compilare il programma.

Il procedimento in se è molto veloce, ovviamente se il nostro programma ha poche righe ed è composto da un solo file, ma anche se questo sembra una cosa che avviene in pochi istanti così non è. Infatti, la compilazione di un programma in C segue varie fasi.

Vediamo quali sono:
    1. la sorgente viene controllata dal preprocessore che ha i seguenti compiti:
      a. rimuovere eventuali commenti presenti nel sorgente;
      b. interpretare speciali direttive per il preprocessore denotate da #, come #include o #define (andremo a scoprire più avanti il loro significato);
      c. controllare eventuali errori del codice.

    2. Il risultato ottenuto dalla prima fase sarà un nuovo codice sorgente, detto pulito ed espanso, che a questo punto viene tradotto dal compilatore C in codice assembly;

    3. A questo punto l'assembler sarà incaricato di creare il codice oggetto salvandolo in un file.out sotto Unix/Linux oppure un file.obj in Dos/Windows;

    4. Adesso interviene il link editor ha il compito di collegare tutti i file oggetto risolvendo eventuali dipendenze e creando il programma. Il risultato finale altro non che un file eseguibile.
Va detto che nel momento in qui queste operazioni sono a lavoro vi si possono individuare facilmente errori di sintassi. Poi sempre in realtà va detto che ma mai e poi mai potranno trovare errori logici (esempio: un ciclo che non finisce), può anche capitare che sbadatamente a forza di implementare e modificare il nostro codice qualcosa di infinito andiamo a creare. Parlo per esperienza personale.

Ovviamente, va precisato che spesso vengono segnalati dei Warning che non costituiscono errore, ma che ci segnalano parti di codice strane e quindi su quale parte della sorgente porre la nostra attenzione per la correzione di eventuali errori logici.

Per semplificarci la vita e il lavoro ci viene in aiuto il debugger, che ha il compito di aiutare a gestire la correzione degli errori con svariati strumenti come i breakpoint ed i watchpoint (argomenti che svilupperemo più avanti).

Andiamo a Compilare il Nostro Programma:
Se utilizzate un ambiente di sviluppo come Dev-C++ o Visual C++ (ve gli consiglio entrambi), dovete solamente cercare il comando Compila od Esegui[b], a questo punto il programma provvederà, non solo ad eseguire tutte le operazioni citate prima, ma una volta compilato, manderà in esecuzione il vostro programma presentandovi il risultato a video.
Tutto questo accade per chi ha scelto di studiare e sviluppare in ambiente [b]Windows[b].

Mentre per chi ha scelto di studiare e sviluppare in ambiente [b]Unix[b] o [b]Linux[b], le cose stanno un pò diversamente.
Infatti, per questi ambienti esistono i compilatori come il [b]DJGPP
o GCC (a volte installati già di default... GCC è installabile anche in ambiente Windows), e la compilazione deve essere fatta da riga di comando (dalla shell o terminale per capirsi), e successivamente, ovviamente sempre da riga di comando, si deve lanciare il file eseguibile risultante.

Piccola Nota:
In Linux con GCC, il file eseguibile si chiama a.out, mentre in ambiente Dos/Windows generalmente ha lo stesso nome del sorgente ma con estensione .exe, invece che .c

Ecco infatti, che avviando il Terminale (linux/mac) o il CMD (windows) e poi spostandoci nella cartella dove risiede il file sorgente da noi salvato e in seguito dando i comandi:
Codice: Seleziona tutto
# gcc hello.c
# ./a.out

Alla fine di tutto vedrette il risultato del vostro programma stampato a video.

NB:
molti dei concetti sopra esposti verranno approfonditi mano a mano che procediamo... quindi non entrate in panico che non sere a niente... con calma si imparano le cose ;)
Avatar utente
florin88
Moderatore Globale
 
Messaggi: 2159
Iscritto il: 26/02/2012, 14:51
Località: tutta l'italia

  • Condividi e Vota l'articolo
  • Condividi e questo articolo di LaScaricata

    Share on Tumblr

Torna a C, C#, C++, Objective-C

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron
 
Creative Commons License

Dichiarazione di non responsabilita': Nessuno dei files indicati su questo sito e' ospitato o trasmesso da questo server. I links sono forniti dagli utenti del sito, basandosi su servizi esterni. Il progetto LaScaricata non puo' essere ritenuto in alcun modo responsabile per qualsiasi pubblicazione o altra azione commessa dagli utenti. Non e' consentito usare questo sito per la distribuzione o il download di materiale se non si e' espressamente autorizzati a farlo. Siete tenuti a rispettare termini e regolamento del sito.