Top Banner
Tutorial su Codelite Luca Ceriani <[email protected]> © 2011 Federico Cerutti <[email protected]>
71

Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Feb 17, 2019

Download

Documents

vuongkhue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Tutorial su Codelite

Luca Ceriani

<[email protected]>

© 2011 Federico Cerutti <[email protected]>

Page 2: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Sommario• Creare un nuovo workspace• Creare un primo progetto all’interno di un workspace

– Scrittura del programma– Esecuzione– Esecuzione controllata tramite il debugger

• Scrivere un secondo programma all’interno dello stessoworkspace

• Strumenti di Codelite per evidenziare errori diprogrammazione

Page 3: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

CREARE UN NUOVO WORKSPACE

Page 4: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 5: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Scrivere il nome del Workspace

Page 6: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Selezionare la directory per il workspace

Page 7: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 8: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

CREARE UN PRIMO PROGETTOALL’INTERNO DI UN WORKSPACE

Page 9: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 10: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Useremo solamente la categoria “Console”…

Page 11: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…e la tipologia “Simple executable (gcc)”

Page 12: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Scriviamo il nome del nuovo progettoe clicchiamo su OK

Page 13: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

All’interno dell’area di sinistra di Codelite, chiamataWorkspace View, compare, un albero la cui radiceè il nome del workspace che abbiamo creato, e sottodi esso compare il primo progetto che abbiamo creato

Page 14: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Cliccando sul simbolo a sinistra di “NumeriBinari” si apre l’albero deifile associati a questo progetto, quindi vedremo la directory “src” e seapriamo anche questa directory compare il file “main.c”, che è il file checonterrà il nostro codice.

Page 15: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Con il doppioclick su “main.c” compare nell’area centraledi Codelite un editor di testocon il contenutodi “main.c”

Page 16: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Selezioniamo il codice che viene autogenerato da Codelite e cancelliamolo

Page 17: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

A questo punto scriviamo il nostro codice (ricordarsi di salvare il codicecon CTRL+s o tramite il menù, selezionando File e poi Save File)

Page 18: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Compilazione ed esecuzione

Page 19: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Una volta terminato di scrivere il codice, possiamo compilarlo tramitel’opzione “Build Project” evidenziata in figura

Page 20: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Nell’area in basso, nel tab “Build” compaiono le informazioni sullacompilazione. Attenzione: non si potrà eseguire alcun programma fino a quando in questo tab non comparirà la scritta “0 errors” come evidenziato.

Page 21: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Se la compilazione è andata a buon fine, possiamo eseguire il programma con il comando “Run” come evidenziato in figura

Page 22: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Comparirà una finestra del terminale del sistema operativo che stiamo eseguendo (in questo esempio Windows XP) in cui viene eseguito il nostro programma

Page 23: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Compilazione ed esecuzione controllata tramite il debugger

Page 24: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Impostiamo un breakpoint, ovvero un punto in cui il programma verrà sospeso nel momento in cui lo eseguiamo tramite il debugger.Per fare questo, clicchiamo accanto (alla destra) al numero della riga in corrispondenza della quale vogliamo che l’esecuzione del programma sisospenda (nell’esempio la riga 13).

Page 25: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Lanciamo l’esecuzione controllata tramite il comando “Start/Continue Debugger”

Page 26: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Codelite ci chiede se vogliamo ricompilare il progetto prima di eseguirlomediante il debugger. Rispondiamo SEMPRE di sì

Page 27: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Compariranno/saranno visibili:1. L’area delle informazioni di compilazione

(basso a sinistra)2. L’area di informazioni del debugger (basso a

destra)3. La finestra del terminale all’interno della

quale vedremo gli output del nostroprogramma e potremo inserire gli input

1 2

3

Page 28: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Ad esempio, dopo aver inserito il numerorichiesto (in questo caso inseriamo 32), l’esecuzione del programma si sospenderà al breackpoint che abbiamo ipostato, e nel tab “Locals” dell’area di informazione del debugger vedremo le variabili locali e i relativiassegnamenti.

La freccia verde indica la riga del programmache il debugger sta per eseguire. In questo casoè sovrapposta al bottone rosso che rappresenta il breackpoint perché l’esecuzione è in questo momento sospesa

Page 29: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Se selezioniamo il tab “Memory” nell’area di informazioni del debugger, possiamorichiedere di visualizzare specifiche aree di memoria, richiedendo l’accesso con ilsimbolo “&” seguito dal nome della variabile. Il debugger ci mostrerà i primi 32 byte a partire dalla posizione che gli abbiamo richiesto (opzione modificabile cambiando ilparametro “Size”). Dobbiamo sapere noi quanti sono i byte che ci interessanoeffettivamente. In questo caso abbiamo richiesto l’area di memoria della variabile“un_numero_intero” che è un int, e quindi utilizza 32 bit (4 byte).N.B. Il calcolatore da cui sono state tratte queste immagini lavora in Little-Endian.N.B. la notazione “0xNM” equivale a (NM)h

Area di memoria della variabileun_numero_intero, ovvero scriviamo“&un_numero_intero”

Il valore della variabile “un_numero_intero” esattamante come viene rappresentata nelcalcolatore (in questo caso un int quindi 4 byte, su un’architettura Little-Endian)

Il numero di byte che chiediamo di visualizzare al debugger (di default 32). Se in questa posizioneavessimo specificato “4”, avremmo visto solamentei primi 4 byte, e quindi solo ed unicamente l’area dimemoria che ci interessava

Page 30: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

In questo caso, richiediamo i primi 32 byte dell’area di memoria a partire da dove è stata salvata la variabile un_altro_numero_intero

Page 31: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

L’area di controllo del debugger è in alto a sinistra. In particolare, se premiamo sul pulsante disegnato come un quadrato (evidenziato in figura) possiamo terminare l’esecuzione del nostro programma in esecuzione controllata all’interno del debugger

Page 32: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

SCRIVERE UN SECONDO PROGRAMMAALL’INTERNO DELLO STESSOWORKSPACE

Page 33: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Ricordarsi sempre!!!!

Un programma, un progetto

Se vogliamo scrivere un nuovo programma, cominciamo sempre creando un nuovo progetto.

Quindi, NON inserire nuovi file che rappresentanoaltri programmi all’interno di un progetto già

esistente!!!

Page 34: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 35: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 36: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Se, come in questo caso, è rimasto aperto il file “main.c” del progetto precedente (NumeriBinari), chiudiamolo cliccando sulla X che compare a destra del nome del file nel tab relativo (come evidenziato in figura)

Page 37: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Apriamo l’albero del nuovoprogetto…

Page 38: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…doppio click sul file “main.c” del nuovo progetto…

Page 39: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…al solito comparirà il codice preimpostato da Codelite…

Page 40: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…cancelliamo il codice preimpostato da Codelite…

Page 41: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…scriviamo il nostro codice.

Page 42: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Prima di compilare il nostro nuovo codice, dobbiamo cambiare ilprogetto “active”, ovvero il progetto sul quale Codelite eseguirà le operazioni di “Build Project” e di “Run” che gli andremo a richiedere. Quindi clicchiamo sull’icona evidenziata in figura…

Page 43: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…comparirà la lista dei progetti presenti in questo workspace. Selezioniamo il progetto che vogliamo compilare/eseguire…

Page 44: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…nell’albero del workspace, il progetto che abbiamo selezionatocome “Active” cambierà il suo font in grassetto. Quindi, se stiamo scrivendo codice e non ci ricordiamo quale sia il progetto attivo, basta guardare a sinistra: il progetto con il nome in grassetto è quello impostato come “Active”.

Page 45: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

A questo punto possiamo operare come visto in precedenza, quindipossiamo compilare il progetto…

Page 46: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…eseguire il nuovo progetto…

Page 47: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…al solito comparirà il terminale del sistema operativo che stiamo utilizzando, e potremo usare questa finestra per fornire gli input e visualizzare gli output…

Page 48: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…possiamo impostare breackpoint per l’esecuzionecontrollata mediante debugger cliccando a destradel numero di riga in corrispondenza della qualevogliamo sospendere l’esecuzione del nostroprogramma…

Page 49: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…lanciare l’esecuzione del nostro programmanell’ambiente controllato del debugger…

Page 50: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…accettare che Codelite prima di eseguire ilprogramma attraverso il debugger lo ricompili…

Page 51: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…operare come meglio crediamonell’ambiente del debugger…

Page 52: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…operare come meglio crediamonell’ambiente del debugger…

Page 53: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…e alla fine terminare l’esecuzione del nostro programma nell’ambientecontrollato del debugger.

Page 54: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

STRUMENTI DI CODELITE PER EVIDENZIARE ERRORI DIPROGRAMMAZIONE

Page 55: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Creiamo un nuovo programma…

Page 56: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Come possiamo vedere, questoprogramma contiene

…scriviamo il nostro codice: come possiamo vedere, ci sono 4 errori nelcodice:1. Manca il “;” che termina la riga 32. Richiamiamo la printf su una variabile

che non esiste3. Richiamiamo la funzione printf senza

aver importato la libreria <stdio.h>4. Scriviamo “return = 2” invece che

“return 2;”

Page 57: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Impostiamo il nostro nuovo codice come Active per poi vedere quale sia il risultatodella compilazione.

Page 58: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione
Page 59: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Nell’area delle informazioni di compilazionevengono evidenziati gli (eventuali) errori dicompilazione. Inoltre Codelite presenta dellefrecce rosse in corrispondenza delle righe checontengono gli errori rivelati dal compilatore.N.B. Il compilatore potrebbe anche non evidenziare tutti gli errori commessi

Page 60: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Se, nonostante gli errori di compilazione e quindi prima di correggerli proviamo ad eseguireil programma ad esempio attraverso ildebugger…

Page 61: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…e diciamo a codelite di non ricompilare ilprogetto (contrariamente a quanto facciamo disolito, quindi commettiamo anche questoerrore)…

Page 62: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…comparirà questa finestra di errore, che significa che il debugger ha provato ad eseguire un file eseguibile che non esiste ancora. Infatti, fino a quando la compilazione non andrà a buon fine, non verrà creato il nostro programma eseguibile

Page 63: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

PRIMA DI ESEGUIRE UN PROGRAMMA, SIA ATTRAVERSO IL COMANDO DI RUN, SIA ATTRAVERSO L’ESECUZIONE CONTROLLATA MEDIANTE IL DEBUGGER, DOBBIAMO RISOLVERE TUTTI GLI ERRORI DI COMPILAZIONE!!!!

Page 64: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Processo di correzione degli errori

Compilazione

Presenza dierrori

Correzionedel primo

errore

Page 65: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Iniziamo a correggere gli errori sempre dalprimo evidenziato, ricompiliamo e vediamo cheeffetti ci sono.La prima linea di errore ci informa che manca un “;” prima del printf, quindi provvediamo ad inserire questo “;”.

Page 66: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Ricompiliamo, e il compilatore ci informa che siè accorto di 4 errori, il primo dei quali riguarda il fatto che “numer” (parametro della funzione printf) non è mai stato dichiarato come variabile.

Page 67: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Correggiamo quindi l’errore scrivendo il nomecorretto della variabile (ovvero “numero”)

Page 68: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Ricompiliamo e il compilatore presenta un errore edun warning. I warning sono errori che di cui ilcompilatore ci avvisa e che ci informa che potrebberiuscire a correggere autonomamente, ma senzaalcuna garanzia. Quindi non devono essere ignorati. In questo caso, il compilatore ci informa che non abbiamo mai dichiarato la funzione “printf” perché in precedenza non avevamo incluso la libreria <stdio.h>. Quindi correggiamo questo warning scrivendo “#include <stdio.h>” in principio al file sorgente

Page 69: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Ricompiliamo e il compilatore presenta un ultimo errore, dovuto al fatto che la riga 9 è sintatticamente sbagliata

Page 70: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

Correggiamo l’errore…

Page 71: Tutorial su Codelite - apollo.ing.unibs.itapollo.ing.unibs.it/fip/lucidi/2012/Codelite_Tutorial.pdf · questo caso, il compilatore ci informache non abbiamo mai dichiarato la funzione

…ricompiliamo, e a questo punto nell’area diinformazioni del compilatore compare la scritta:“0 errors, 0 warnings”, che significa che ilcodice che abbiamo scritto è sintatticamente corretto (nessuna garanzia sulla semantica) e quindi possiamo eseguirlo attraverso il comando “Run” o mediante l’esecuzione controllata del debugger