Compilare primo programma C o Cpp - Gnu/Linux Ubuntu

Gcc Prima o poi bisogna pur inziare a compilare qualche programmino in C o C++ con il nostro bel sistema operativo Gnu/Linux se si vuole sperimentare cosa è possibile realizzare con la "forza" della programmazione, anche solo per fare piccole prove pratiche o semplicemente per prepararsi ad un esame per l'università. Ma come ogni cosa se non lo si è mai affrontato, spesso non si ha la minima idea neanche da dove cominciare. Con questo tutorial proviamo ad inizare da zero e sperminetare l'ebrezza della "programmazione" facendo fare ad una macchina esattamente quello che noi gli chiediamo. 

Cosa ti serve?

Ti serve per prima cosa un compilatore per C/C++ che traduca lo script che hai realizzato in linguaggio macchina, quindi interpretabile o meglio "leggibile" dal tuo PC. Dato che ci troviamo su Gnu/Linux non possiamo che utilizzare Gcc, quest'ultimo è il compilatore nativo del progetto Gnu/Linux e il suo nome è l'acronimo di "GNU Compiler Collection", un compilatore voluto da Richard Stallman e che probabilmente senza di esso non avrebbe mai avuto il successo che oggi ha raggiunto il progetto iniziale Gnu.

Teniamo bene a mente che Gcc è un compilatore molto importante tanto da essere incluso nativamente in molti sistemi operativi com Mac OSx e nelle numerosissime distribuzioni Gnu/Linux (Ubuntu, Red hat, Debian, Suse.... ).

Come installare Gcc?

Non bisogna installarlo se siamo su Gnu/Linux o su un Mac OSx come ho detto poco fa, mentre se sfortunatamente sei su WinDoWsZ ti consigliio vivamente di non cercarlo nemmeno, passa a Gnu/Linux! Se stai per compilare il tuo primo programma in C o C++ non puoi continuare ad utilizzare WinDoWsZ per l'eternità, dovrai pure iniziare ad utilizzate Gnu/Linux, questo è il momento giusto per farlo. Mi sento di dirti che se hai le capacità e l'elasticità mentale per compilare uno script, sei sufficentemente preparato ad entrare nel mondo Gnu/Linux.

Come si usa Gcc?

Passiamo quindi alla parte pratica del tutorial realizzando il classico "hello word" in C e tentiamo di compilarlo con Gcc, non è detto che vada a buon fine.

Tutti i comandi che sto per elencare di segui sono lanciati nella Shell di una qualsiasi distribuzione Gnu/Linux, se non avete idea di cosa sia una Shell andate cercate un applicazione che si chiama "Terminale", su Ubuntu Gnu/Linux è raggiungibile da Applications > Accessories > Terminal.

Creare una cartella "prova" e posizionarsi al suo interno

mkdir prova
cd prova

Creare file "primo.c" tramite l'editor "nano"

nano primo.c

Al suo interno scriviamo

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

Questo codice stamperà a schermo la scrittà "Hello World" e darà come valore di ritorno "0" facendo inteterrompere lo script. A questo punto utlizziamo la combinazione di tasti CTRL+O per salvare e CTRL+X per uscire dall'editor di testo (nota che sono combinazioni utilizzabile solo all'interno dell'editor di test nano) per poi accingerci a compilare il nostro script dal nome "primo.c";

Compiliamo lo script

Prima di compilare possiamo controllare che sia tutto in ordine e verificare il reale nome del nostro file digitando nella Shell il comando "ls". A questo punto utilizziamo i seguenti comandi per compilare lo script

gcc NOME-FILE-DA-COMPILARE.c -o NOME-FILE-DI-OUT-PUT

... nel nostro caso

gcc primo.c -o primo

Se la procedura non produce "errori" o "warning" possiamo procedere

...lanciamo l'eseguibile

./primo

Il risultato sarà

./primo
Hello, world!

Ben fatto! Se il risultato è identico e/o molto simile allora non avete fatto errori ed hai capito come si compila uno script realizzato in C o Cpp. A questo punto ogni altro script da te realizzato potrà essere compilato in questo modo, dovrai prestare "solo" attenzione alla sintassi del linguaggio di programmazione che stai usando.

Nota: Gcc è un compilatore in grado di produrre file eseguibili non solo per C e C++, ma anche per Objective-C, Fortran, Java, Ada e alcune altre librerie, quindi non abbandonarlo.

Revisione 22/06/2010: Codice di esempio modificato evitando l'errore di compilazione. Un grazie all'utente che mi ha fatto notare l'anomalia.

Licenza: 
Il solito ignoto's picture

Submitted by Leonardo (not verified) on Tue, 06/22/2010 - 17:25.ciao, non so perché ma qui si

ciao, non so perché ma qui si blocca tutto, ho provato e riprovato il risultato è sempre lo stesso:

pc1@ubuntu:~/prova000$ gcc primo.c -o primo
primo.c:7: error: expected identifier or ‘(’ before ‘<’ token
pc1@ubuntu:~/prova000$

Kiuz's picture

Submitted by Kiuz on Tue, 06/22/2010 - 20:17.strano, dovrebbe andare. Ad

strano, dovrebbe andare. Ad ogni modo ti consiglio di "indentare" il codice ...
Il messaggio è solo un messaggio di errore che ti avvisa che il compilatore ha icontrato un'errore di sintasssi consigliandoti di ricontrollare...

ti dò comunque un feedback tra poco.

Kiuz's picture

Submitted by Kiuz on Tue, 06/22/2010 - 20:21.ok. Problema individuato,

ok. Problema individuato, deve essere eliminato l'ultimo termine della stringa ovvero " con il lasciando il codice come segue...

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

Grazie per avermi fatto notare dell'errore!

Il solito ignoto's picture

Submitted by Leonardo (not verified) on Wed, 06/23/2010 - 12:32.ora trovo il seguente

ora trovo il seguente problema:

pc1@ubuntu:~/prova$ gcc primo.c -o primo
primo.c:2:1: eoblemarror: invalid suffix "int" on floating constant
primo.c:2: error: expected identifier or ‘(’ before numeric constant
primo.c:3:1: error: invalid suffix "printf" on floating constant
primo.c:4:1: error: invalid suffix "return" on floating constant

Il solito ignoto's picture

Submitted by Leonardo (not verified) on Wed, 06/23/2010 - 12:34.ciao e grazie, adesso ho

ciao e grazie, adesso ho ilseguente problema:

pc1@ubuntu:~/prova$ gcc primo.c -o primo
primo.c:2:1: error: invalid suffix "int" on floating constant
primo.c:2: error: expected identifier or ‘(’ before numeric constant
primo.c:3:1: error: invalid suffix "printf" on floating constant
primo.c:4:1: error: invalid suffix "return" on floating constant

Il solito ignoto's picture

Submitted by Leonardo (not verified) on Wed, 06/23/2010 - 12:35.sapresti indirizzarmi, sempre

sapresti indirizzarmi, sempre adatto al mio livello, il modo per dare un'interfaccia grafica di questo programmino, il software da utilizzare e la procedura?

leonardo59's picture

Submitted by leonardo59 on Wed, 06/23/2010 - 17:19.bene, vorrei sapere quale

bene, vorrei sapere quale deve essere il prossimo passo in questo mondo, se non mi sbaglio dovremmo poter dare un'interfaccia grafica al programma compilato, e se così fosse, posso usare geany? ed in che modo?

Kiuz's picture

Submitted by Kiuz on Fri, 06/25/2010 - 15:29.Ciao, scusa il ritarto ... a

Ciao, scusa il ritarto ... a questo punto mi risulta difficile aiutarti, dipende qual'è il tuo progetto e quello che devi realizzare. Ad ogni modo GEANY è solo un editor, quindi come tale puoi usarlo o meno dipende se fa al caso tuo.

Il solito ignoto's picture

Submitted by Gini (not verified) on Wed, 07/14/2010 - 19:04.anch'io ho trovato l'errore

anch'io ho trovato l'errore ...or*(*before*<*token,
poi ho cancellato l'ultima parte di codice
ed è andato tutto a posto

Kiuz's picture

Submitted by Kiuz on Thu, 07/15/2010 - 10:12.Okay è stato risolto il

Okay è stato risolto il problema! Mi stava facendo impazzire!!!!
L'errore sta in "" solo che in effetti nel codice io non ce l'avevo messo perchè non è necessario inserire la chiusura di un file incluso solo che ho tentato di correggere il testo del blog ma a quanto pare il file JS che si occupa della colorazione del codice in automatico crea ""! Erano giorni che tentavo di capire perchè io non ci inserivo quella riga e puntualmente ricompariva!

grazie per avermi fatto notare il problema.

Kiuz's picture

Submitted by Kiuz on Thu, 07/15/2010 - 10:18.Risolto! ... è un problema

Risolto! ... è un problema della formattazione "colorata" del codice su questo blog!
Ora il codice proposto è esente dal problema menzionato!

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Crediti

Gnu Project Gnu Project Gnu Project Gnu Project Copyright by http://kiuz.it Gnu Project Powered by Site 5 Hosting Drupal Logo by Pills of Bits