Punto informatico Network
Canali
20091011195959_536691528_20091011195943_1980265020_sl_open.png

Cenni generali sulla compilazione in GNU/Linux

21/05/2010
- A cura di
Linux & Open Source - Probabilmente saper "compilare" qualcosa in sistemi operativi derivanti da UNIX è una delle basi a cui riferirsi per ottenere una vera e propria "raffinazione" e customizzazione dei software installati nel sistema.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

compilazione (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 25 voti

Percorso di un file sorgente

La vita di un programma comincia nel momento in cui viene ideato e progettato, con diagrammi di flusso, problematiche da risolvere, pseudocodice, raffinazioni successive, strutture di funzioni, eccetera.

Dopo la teoria arriva la pratica, e giunge il momento in cui viene scritto. Il programma può comprendere da uno a migliaia, o decine di migliaia, di file sorgente, che devono essere compilati per poter essere usati in qualche modo. Riassumo di seguito i passi fondamentali che un file sorgente fa nella sua trasformazione in eseguibile.

Analisi lessicale

Il cammino dei sorgenti comincia quando essi vengono letti da un primo stadio chiamato "analisi di lessico". Viene usato un programma che suddivide il codice in piccoli frammenti chiamati "token" [5].

Preprocessing

Dopo l'analisi del lessico c'è il preprocessing, in cui alcuni linguaggi come il C sostituiscono le invocazioni degli header [6] dichiarati nel codice sorgente con istruzioni relative, generando un codice intermedio completo.

Analisi della sintassi

Avviene poi l'analisi della sintassi e della semantica, in cui il compilatore (o un programma ottimizzato per questa funzione, chiamato "parser") controlla che non esistano errori di battitura come istruzioni sbagliate, variabili non referenziate, parametri non corretti e così via. Questa fase è strettamente legata all'analisi lessicale.

Ottimizzazione

Dopo l'analisi sintattica e semantica comincia la vera e propria elaborazione del linguaggio, con una fase intermedia di ottimizzazione del codice, per fare in modo che il programma compilato richieda meno cicli di processore e meno memoria possibile, e quindi meno risorse possibili per la sua esecuzione.

Generazione del codice

Alla fine si ha la generazione del codice macchina, ovvero del programma eseguibile, in una procedura chiamata assembling [7] [7a].

Ottenere un ambiente di compilazione con Ubuntu

Se ancora non siete abbastanza spaventati, potete continuare a leggere mentre vi descriverò brevemente come compilare un software semplice in un sistema operativo GNU/Linux, per la precisione Ubuntu. Notate che le istruzioni per l'installazione dell'ambiente di compilazione sono valide per qualsiasi distribuzione derivata da Debian.

La primissima cosa da tenere in considerazione è che quello che vi farò scaricare è un ambiente di compilazione standard, in cui potrebbero mancare strumenti meno conosciuti. Ma generalmente parlando si tratta comunque di un ambiente di compilazione con cui potrete generare applicazioni scritte in C e C++, ovvero la stragrande maggioranza del software disponibile per GNU/Linux.

Prima di scaricare gli strumenti verificate se avete gli strumenti con questo comando:

gcc

Qualsiasi output diverso da questo

gcc: no input files

Vorrà dire che gcc, ovvero il compilatore di cui avete bisogno, non sarà installato nel vostro sistema, e dovrete installarlo con il seguente comando:

sudo apt-get install build-essential flex bison libtool autoconf automake1.9

C'è poi da tener presente il fatto, molto importante, che nella compilazione è da ritenere fondamentale: le versioni dei software che installate tramite la compilazione potrebbero richiedere versioni di pacchetti e di dipendenze che nei repository Ubuntu ancora non sono comprese. Per questo dovete sempre tenere d'occhio tutte le fasi della compilazione. Ricordate che compilare è come costruire una macchina da zero, avendo solo i componenti: ogni componente deve essere compatibile con tutti gli altri ed ognuno deve essere controllato affinché funzioni al meglio.

Vorrei anche precisare che la compilazione di software è un procedimento in alcuni casi tecnico e delicato che potrà richiedere delle correzioni di volta in volta, a seconda del pacchetto che intendete installare. Ricordate sempre di leggere la documentazione prima di cominciare, specialmente se siete alle prime armi.

Pagina successiva
Compiliamo yasm
Pagina precedente
Introduzione

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2019 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.23 sec.
    •  | Utenti conn.: 41
    •  | Revisione 2.0.1
    •  | Numero query: 45
    •  | Tempo totale query: 0.05