<head> <STYLE TYPE="text/css"> <!-- .title {font-size:large;text-align:left;margin-right:1cm} --> </STYLE> </head> <H1>Fondamenti di Programmazione</H1> <H2>Linux/Windows/Mac OS X - <U>gcc</U></H2> <DIV ALIGN="justify" style="margin-left:5%; margin-right:10%"> <P> Per prima cosa ci occorre un text editor o meglio ancora un source code editor per scrivere il programma in linguaggio C. Ad esempio, possiamo usare <U>JEdit</U> che è disponibile per tutte e tre le piattaforme Linux, Windows e Mac OS X. Il nostro primo programma semplicemente stampa a video la stringa <CODE>"Dennis Ritchie invento' il Linguaggio C"</CODE>: <pre> <font color="#000000"><font color="#009966"><strong>#</strong></font><font color="#1414ff">include</font> <font color="#00aa00"><</font><font color="#00aa00">stdio.h</font><font color="#00aa00">></font> <font color="#3232ff"><strong>int</strong></font> <font color="#000000"><strong>main</strong></font><font color="#000000"><strong>(</strong></font><font color="#000000"><strong>)</strong></font> <font color="#000000"><strong>{</strong></font> <font color="#000000"><strong>printf</strong></font><font color="#000000"><strong>(</strong></font><font color="#00aa00">"</font><font color="#00aa00">Dennis</font><font color="#00aa00"> </font><font color="#00aa00">Ritchie</font><font color="#00aa00"> </font><font color="#00aa00">invento'</font><font color="#00aa00"> </font><font color="#00aa00">il</font><font color="#00aa00"> </font><font color="#00aa00">Linguaggio</font><font color="#00aa00"> </font><font color="#00aa00">C\n</font><font color="#00aa00">"</font><font color="#000000"><strong>)</strong></font><font color="#000000"><strong>;</strong></font> <font color="#3232ff"><strong>return</strong></font> <font color="#007800">0</font><font color="#000000"><strong>;</strong></font> <font color="#000000"><strong>}</strong></font> </font> </pre> Salviamo il programma in un file di nome <CODE>primo.c</CODE>. Supponiamo di aver creato il file in una directory di nome <CODE>C_PROG</CODE>. Per la compilazione tramite <U>gcc</U> ci sono delle piccole differenze tra Windows e le altre due piattaforme. <DL COMPACT> <DT>Linux e Mac OS X</DT> <DD> Apriamo una finestra di terminale (<U>Terminal</U>) e posizioniamoci (tramite il comando <CODE>cd</CODE>) nella directory <CODE>C_PROG</CODE> che contiene il file <CODE>primo.c</CODE>. Se adesso eseguiamo il comando <CODE>ls</CODE> dovremmo vedere sul terminale qualcosa del genere: <PRE> rik@computer:~/C_PROG$ ls primo.c rik@computer:~/C_PROG$ </PRE> Ora compiliamo il programma: <PRE> rik@computer:~/C_PROG$ gcc primo.c rik@computer:~/C_PROG$ </PRE> Il comando <U>gcc</U> compila ed esegue il linking del programma <CODE>primo.c</CODE> e se non ci sono errori ritorna senza messaggi. L'eseguibile è stato creato in un file di nome <CODE>a.out</CODE> (questo è il nome di default che come vedremo può essere cambiato). Se ora eseguiamo un <CODE>ls</CODE> otteniamo: <PRE> rik@computer:~/C_PROG$ ls a.out primo.c rik@computer:~/C_PROG$ </PRE> Per eseguire <CODE>a.out</CODE> si scrive: <PRE> rik@computer:~/C_PROG$ ./a.out Dennis Ritchie invento' il Linguaggio C rik@computer:~/C_PROG$ </PRE> Se vogliamo che l'eseguibile sia creato in un file con un nome diverso da <CODE>a.out</CODE>, ad esempio <CODE>primo</CODE>, basterà scrivere: <PRE> rik@computer:~/C_PROG$ gcc primo.c -o primo rik@computer:~/C_PROG$ </PRE> Dopo di ciò se eseguiamo un <CODE>ls</CODE> e poi eseguiamo il programma ottteniamo: <PRE> rik@computer:~/C_PROG$ ls a.out primo primo.c rik@computer:~/C_PROG$ ./primo Dennis Ritchie invento' il Linguaggio C rik@computer:~/C_PROG$ </PRE> </DD> <DT>Windows</DT> <DD> Ricordiamo che <U>gcc</U> non è disponibile di default sotto Windows ed è quindi necessario istallarlo. Questo può essere fatto istallando <a href="http://www.mingw.org/">MinGW</a>. <BR> Apriamo il <U>Prompt dei comandi</U> e posizioniamoci (tramite il comando <CODE>cd</CODE>) nella directory <CODE>C_PROG</CODE> che contiene il file <CODE>primo.c</CODE>. Se adesso eseguiamo il comando <CODE>dir</CODE> dovremmo vedere sulla finestra qualcosa del genere: <PRE> C:\Documents and Settings\rik\C_PROG>dir /b primo.c C:\Documents and Settings\rik\C_PROG> </PRE> Ora compiliamo il programma: <PRE> C:\Documents and Settings\rik\C_PROG>gcc primo.c C:\Documents and Settings\rik\C_PROG> </PRE> Il comando <U>gcc</U> compila ed esegue il linking del programma <CODE>primo.c</CODE> e se non ci sono errori ritorna senza messaggi. L'eseguibile è stato creato in un file di nome <CODE>a.exe</CODE> (questo è il nome di default che come vedremo può essere cambiato). Se ora eseguiamo un <CODE>dir</CODE> otteniamo: <PRE> C:\Documents and Settings\rik\C_PROG>dir /b a.exe primo.c C:\Documents and Settings\rik\C_PROG> </PRE> Per eseguire <CODE>a.exe</CODE> basterà scrivere: <PRE> C:\Documents and Settings\rik\C_PROG>a Dennis Ritchie invento' il Linguaggio C C:\Documents and Settings\rik\C_PROG> </PRE> Se vogliamo che l'eseguibile sia creato in un file con un nome diverso da <CODE>a.exe</CODE>, ad esempio <CODE>primo.exe</CODE>, basterà scrivere: <PRE> C:\Documents and Settings\rik\C_PROG>gcc primo.c -o primo C:\Documents and Settings\rik\C_PROG> </PRE> Dopo di ciò se eseguiamo un <CODE>dir</CODE> e poi eseguiamo il programma ottteniamo: <PRE> C:\Documents and Settings\rik\C_PROG>dir /b a.exe primo.c primo.exe C:\Documents and Settings\rik\C_PROG>primo Dennis Ritchie invento' il Linguaggio C C:\Documents and Settings\rik\C_PROG> </PRE> </DD> </DL> </P> <BR> <P> Se il programma sorgente contiene degli errori il compilatore <U>gcc</U> li segnalerà tutti. Ad esempio, se invece di scrivere <CODE>printf</CODE> avessimo scritto <CODE>print</CODE>, il comando <CODE>gcc primo.c</CODE> produrrebbe un messaggio del seguente genere: <PRE> Undefined symbols: "_print", referenced from: _main in ccq1ZzwB.o ld: symbol(s) not found collect2: ld returned 1 exit status </PRE> Finché tutti gli errori non sono corretti il programma non può essere compilato. </P> </DIV>
This topic: Programmazione1
>
WebHome
>
Prog1PZ
>
FPrisorse0910
>
EseLinuxWinOSX_gcc
Topic revision: r5 - 2011-09-23 - RiccardoSilvestri
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback