Strumenti Utente

Strumenti Sito


lcs:lcs07:esercitazioni:esercitazione1

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
lcs:lcs07:esercitazioni:esercitazione1 [08/02/2007 alle 09:35 (19 anni fa)] – creata Susanna Pelagattilcs:lcs07:esercitazioni:esercitazione1 [10/02/2007 alle 04:58 (19 anni fa)] (versione attuale) peppe
Linea 1: Linea 1:
 ====== Esercitazione 1 ====== ====== Esercitazione 1 ======
 +
 +===== Esercizio 0: Getting started -- Preprocessing, compilazione e linking =====
 +0.1) Compilare ed eseguire il seguente programma:
 +<code c>
 +#include <stdio.h>
 +#include <math.h>
 +
 +int main (void) {
 +  double x=3.0;
 +
 +  printf("Radice = %f\n",sqrt(x));
 +  return 0;
 +}
 +</code>
 +salvato nel file //ff.c// con
 +<code>
 +gcc -Wall -pedantic ff.c
 +</code>
 +Chi segnala un errore? E' fallita la fase di preprocessing, la compilazione o il linking? Cosa contine il modulo oggetto se specifico l'opzione -c? Come si risolve il problema?
 +
 +0.2) Cosa accade se eliminiamo la linea
 +<code c>
 +#include <math.h>
 +</code>
 +? A questo punto cosa va storto? Sapete interpretare i messaggi a video e stabilire chi li ha scritti e perche'? Viene generato l'eseguibile?
 +
 +0.3) Generare il modulo oggetto. Utilizzare //objdump, nm, readelf// per capire cosa contengono la tabella di rilocazione, la tabella dei simboli esportati ed esterni, le sezioni data, BSS e codice.
 +
 +0.4) Usare l'opzione //-E// e la //-S// del gcc: che cosa succede? Cosa accade specificando il flag -g assieme a -S? Che cosa e' accaduto?
  
 ===== Esercizio 1. Invasion Percolation ===== ===== Esercizio 1. Invasion Percolation =====
lcs/lcs07/esercitazioni/esercitazione1.1170927343.txt.gz · Ultima modifica: 27/06/2007 alle 12:16 (18 anni fa) (modifica esterna)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki