-->

Gnu Compiler Collection (GCC) è una collezione di compilatori per scrivere programmi in C, C + +, Java, Objective-C, Fortran, Ada, Assembler e Go.

Gnu Compiler Collection (GCC) è una collezione di compilatori e fornisce un'interfaccia uniforme per scrivere programmi in C, C + +, Java, Objective-C, Fortran, Ada, Assembler e Go (a partire da Ubuntu 11.10). 

Il significato originario di GCC era GNU C Compiler, ma da allora poiché sono stati aggiunti altri linguaggi e il suo significato è stato cambiato in Gnu Compiler Collection. 

Questa guida si prefigge di aiutare nella programmazione in Ubuntu usando GCC per compilare. Non ha il fine di introdurre ai linguaggi di programmazione o di dar supporto ad essi. Per questo occorre leggere molte pagine web, guide in linea o dei buoni libri di testo.



Installazione.


Installare il pacchetto build-essential. Questo fornirà i compilatori per il linguaggio C e C++ e molti strumenti utili che gli gli sviluppatori utilizzano frequentemente. 

Per gli altri linguaggi è richiesta l'installazione dei seguenti pacchetti:
  • gcj (Java)
  • gobjc (Objective-C)
  • gfortran (Fortran)
  • gnat (Ada)
  • gccgo (Go)

Utilizzo.

La sintassi base di utilizzo è la seguente:  

gcc [parametri] nome_file_sorgente.estensione -o nome_file_output


ad esempio se si dà il comando:  

gcc -g -Wall -Wextra -pedantic-errors foo.c -o foo 

il file sorgente foo.c sarà compilato e si otterrà il file di output foo.

Una volta generato il file binario sarà possibile avviarlo da un terminale con il comando: 
./nome_file_output 


sostituendo nome_file_output con il nome del file eseguibile che si desidera avviare.

Esempio di programma.

I seguenti file, dopo essere stati compilati, mostrano sul terminale Hello World.
C++ (main.cc)
C (main.c)
Assembler (main.S)
Parametri.Ada (main.adb)

#include <iostream>
int main()
{
std::cout << "Hello World\n";
}
#include <stdio.h>
int main ()
{
printf ("Hello World\n");
}
.section .data
hello: .ascii "Hello World!\n"
.section .text
.globl _start
_start:
mov $4, %eax
mov $1, %ebx
mov $hello, %ecx
mov $13, %edx
int $0x80
mov $1, %eax
mov $0, %ebx
int $0x80
with Ada.Text_IO;
use Ada.Text_IO;

procedure main is
begin
Put_Line("Hello World!");
end main;

g++ main.cc
gcc main.c
gcc main.S
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder
gcc -c main.adb

L'ultima riga della tabella mostra il comando per mandare in compilazione il sorgente. 

E' da notare che il programma scritto in C++ è compilato dal comando g++. Il comando gcc riconosce il linguaggio di input in base all'estensione del file del sorgente (.cpp, .cc e .cxx sono tutte corrette) ma decide di non linkare la libreria standard del C++ (libstdc++). Il comando g++ fa questo in automatico e si risparmiano un sacco di sforzi.

Se nulla è stato specificato il compilatore andrà a creare un binario eseguibile chiamato di default a.out.

Parametri.

Ci sono molti parametri utili, i più importanti sono riportati nella seguente tabella.
Parametro
Spiegazione

-o
Specifica il nome del file di output (a.out è quello predefinito).

-c
Il file sorgente è solo compilato ma non non avviene in linking (terminerà con l'estensione .o).

-OX
Ottimizza il codice sorgente, il grado di ottimizzazione (indicato da X) può essere 0 (nessuno), 1 (dimensioni e velocità), 2 (velocità), 3 (velocità, aggressività o dimensioni).

-march=nativ
Ottimizzato specialmente per il processore esistente, non si avvierà su altre architetture. Non adatto per distcc.

-lXXX
Collega altre librerie (ad esempio -lncurses per libncurses)

-std=XXX
Imposta il linguaggio di programmazione predefinito (ad esempio XXX può essere c99, c1x, gnu++98, c++98 c++0x)

-ansi
Consente solo costrutti conformi ad ANSI C

-Wall
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder
Abilita avvisi utili che sono supportati dal compilatore gcc.

-Wextra
Abilita ancora più avvisi che sono supportati dal compilatore gcc.

-pedantic
Dà tutti gli avvisi richiesti dal rigoroso ISO C e ISO C + +. -pedantic-errors è simile a -pedantic, solo che sono prodotti errori anziché avvisi.

-v
Stampa i comandi e passi che il compilatore esegue esattamente (preprocessore, compilatore, assemblatore, linker...)

-g
Produce informazioni di debug nel formato nativo del sistema operativo (stabs, COFF, XCOFF, o DWARF 2). GDB può lavorare con queste informazioni di debug.

-ggdb
Produce espressioni di debug per usarle da GDB. questo significa usare il più espressivo formato disponibile (DWARF 2, stabs, o il formato nativo se nessuno di questi sono supportati), comprese le estensioni GDB, se possibile.
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

Nessun commento:

Posta un commento

Pages (26)1234567 Next

Random Posts

  • Guida all'installazione di Ubuntu 14.04
    18.04.2014 - 0 Comments
    Con l’uscita di una nuova release gli utenti si trovano davanti ad un enorme dilemma: aggiornare il proprio computer al nuovo rilascio per provare le ultimissime feature o rimanere cauti aspettando i primi…
  • Terminator un ottimo programma per terminale, molto simile a Gnome-terminal, ma con più opzioni.
    05.05.2012 - 0 Comments
    Terminator è un’applicazione che vi consente di dividere la vostra finestra in più terminali. C'è chi con Ubuntu lavora solo via terminale per il gusto di fare tutto manualmente e senza ricorrere ad…
  • Guida introduttiva di Chrome: impostazioni sulla privacy.
    16.09.2014 - 0 Comments
    Alcune impostazioni di Google Chrome utilizzano i tuoi dati di navigazione per migliorare il tuo utilizzo del Web. Ad esempio, Chrome può utilizzare i tuoi dati di navigazione per completare le frasi di…
  • Saucy Salamander, la “Salamandra Impertinente” ecco il nome della prossima release di Ubuntu targata Canonical.
    26.04.2013 - 0 Comments
    Ubuntu 13.10 si chiamerà Saucy Salamander. Mark Shuttleworth ha annunciato nel suo blog il nome della prossima versione. Continua dunque la tradizione “Adjective Animal” che prevede di assegnare ad ogni…
  • Guida fotografica KDE: bilanciamento del bianco.
    11.04.2014 - 0 Comments
    Questa è la terza guida della serie che cerca di mostrare quanto possono essere efficaci le applicazioni KDE per la fotografia nel sistemare e/o migliorare globalmente le tue fotografie. Nella prima e nella…

I miei preferiti in Instagram

Archivio