Tags archives: ubuntu-12-04-precise-pangolin

 

0

Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: Curve di Bézier.

Si possono generare delle linee curve con Jgraph se si interpretano alcuni dei punti indicati come punti di controllo per una curva di Bézier.

Nella sezione 6.13 vengono indicati dei possibili spunti di approfondimento sulla questione, ma si consideri che per definire una curva di Bézier con Jgraph servono almeno quattro punti, e in generale è possibile tracciare una curva di Bézier mediante 3*n+1 punti di controllo, di cui 2*n di controllo e i rimanenti n+1 di passaggio della curva.

Il listato 6.22 e la figura 6.23 fornuscono un esempio in cui viene disegnato un pallone da football americano (molto stilizzato a dire il vero) mediante curve di Bézier.
  1. Una curva di Bézier è una particolare curva parametrica, che ha grande applicazione nella computer grafica. Un metodo numericamente stabile per calcolare le curve di Bézier è l’algoritmo di de Casteljau. Wikipedia

Listato 6.22. Jgraph: curve di Bézier.
newgraph 
xaxis min 0 max 10 nodraw
yaxis min 0 max 10 nodraw

(* Draw the outline of the football *)
newline bezier poly pcfill .543 .270 .074 pts
0 5 3 10 7 10 10 5
7 0 3 0 0 5

(* Draw the main thread *)

newline bezier linethickness 4 gray 1 pts
3 7 4.5 8 5.5 8 7 7

(* Draw the crossthreads *)

copycurve nobezier pts 3.5 6.7 3.3 7.5
copycurve pts 6.5 6.7 6.7 7.5
copycurve pts 4.2 7.1 4.1 7.9
copycurve pts 5.8 7.1 5.9 7.9
copycurve pts 5 7.3 5 8.1
Figura 6.23.
f-football-jgr
Altre caratteristiche.
Accenniamo ad alcune ulteriori interessanti caratteristiche del programma Jgraph, rinviando il lettore interessato alla sezione 6.13 per eventuali approfondimenti.

Dall’interno di un sorgente Jgraph è possibile invocare un comando della shell o un programma esterno scrivendo shell : comando; l’output generato viene contestualmente incluso nel sorgente.
Ovviamente si tratta di una caratteristica estremamente interessante e potente, poiché permette di utilizzare strumenti come Perl, Awk e simili per il tracciamento di grafici di funzione, estrazione e manipolazione di dati, ecc.; parallelamente si tratta di una caratteristica potenzialmente pericolosa, in quanto Jgraph non effettua nessun controllo sul comando che viene eseguito, aprendo così il varco a possibili cavalli di Troia.
Prestare dunque un’adeguata cautela!
Un’altra caratteristica interessante di Jgraph è quella di poter utilizzare una qualunque immagine in formato EPS come indicatore, utilizzando l’attributo di curva eps.

Infine, si noti che è possibile tracciare più di un grafico nella stessa immagine mediante un ulteriore newgraph oppure mediante copygraph: in quest’ultimo caso il grafico successivo eredita gli assi dal precedente. Il posizionamento relativo dei vari grafici è gestibile mediante gli attributi di grafico x_translate e y_translate. È altresì possibile posizionare i vari grafici su più pagine, mediante la parola chiave newpage. Il listato 6.24 e la figura 6.25 presentano un esempio di utilizzo di copygraph.

Listato 6.24. Jgraph: grafici multipli.
newgraph
xaxis min 0 max 10 size 1 label fontsize 16 font Times-Italic : Graph 1
yaxis min 0 max 10 size 1

newcurve marktype box linetype solid pts 1 10 2 8 5 5 8 3 10 2

copygraph
x_translate 2
xaxis label : Graph 2
newcurve marktype box linetype solid pts 10 10 8 8 5 5 8 3 10 2
Figura 6.25.
f-copygraph-jgr
Utilizzo programmatico.
Il punto di forza dei programmi non interattivi è quello di poter essere facilmente utilizzati come anelli di una catena di strumenti o processi; la connessione delle varie parti può essere gestita semplicemente mediante generiche pipeline, o addirittura mediante specifici programmi «wrapper», progettati per uno scopo preciso, che costruiscano programmaticamente l’input da far elaborare.

«njgraph.pl»

Un esempio interessante è il programma njgraph.pl di Neil Spring. Si tratta di un piccolo sorgente in Perl che in pratica realizza una specie di programma frontale per Jgraph: esso legge dallostandard input una singola serie di dati da rappresentare graficamente, e dopo averli opportunamente passati a Jgraph per l’elaborazione invoca GV, a meno che lo standard output non venga rediretto.

Il programma njgraph.pl riconosce altresì gli attributi marktype, linetype e color (e relativi valori) facoltativamente presenti sulla riga di comando, e li posiziona opportunamente all’interno del sorgente Jgraph prima dell’elaborazione.

La figura 6.26 illustra qualche esempio di invocazione del programma njgraph.pl, mentre la figura 6.27 ne illustra l’output.

Figura 6.26. Invocazione del programma njgraph.pl.
njgraph.pl[Invio]
automatically invoking gv; redirect if you want something else
1 7 2 3 3 8 4 6 5 3 6 2 7 4 8 7 9 5 10 7[Invio]
[Ctrl d]
[q]
njgraph.pl marktype box linetype dashed color 1 0 0[Invio]
automatically invoking gv; redirect if you want something else
1 7 2 3 3 8 4 6 5 3 6 2 7 4 8 7 9 5 10 7[Invio]
[Ctrl d]
[q]
Figura 6.27. Output del programma njgraph.pl.
njgraph-output-1 njgraph-output-2


Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

reeder

 

0

Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: gestione delle etichette di tacca e dei grafici a barre.

Analogamente al caso delle legende è possibile modificare l’insieme delle etichette di tacca di un asse, come unità complessiva, mediante l’attributo hash_labels: ad esempio, per cambiare le etichette di tacca in figura 6.9 in maniera tale che la fonte sia Times-Italic e la dimensione della fonte sia 16, si può scrivere hash_labels font Times-Italic fontsize 16, e analogamente per l’asse delle ordinate (listato 6.16, righe 4 e 7, e figura 6.17).

Grafici a barre.

Utilizzando come indicatori xbar e ybar si ottengono i grafici a barre: xbar produce barre che si estendono parallelamente all’asse delle ordinate, ybar barre che si estendono parallelamente all’asse delle ascisse.

Il listato 6.18 e la figura 6.19 forniscono un interessante esempio di grafico a barre.


Listato 6.16. Jgraph: gestione delle etichette di tacca.
      1 newgraph
2
3 xaxis min 0 max 10 size 7
4 hash_labels font Times-Italic fontsize 16
5
6 yaxis min 0 max 10 size 4
7 hash_labels font Times-Italic fontsize 16
8
9 newcurve marktype box marksize 1.5 1 linetype solid cfill 1 0 0
10 pts 1 3 2 5 3 1 4 8
11
12 copycurve marktype ellipse cfill 1 0 .5
13 pts 6 3 7 5 8 1 9 8
Figura 6.17.
f-hlabels-jgr
Listato 6.18. Jgraph: grafico a barre.
      1 newgraph
2
3 xaxis
4 min 0.1 max 4.9
5 size 3.5
6 hash 1 mhash 0 no_auto_hash_labels
7
8 yaxis
9 min 0 max .4
10 size 2
11 precision 3
12
13 newcurve marktype xbar cfill 1 0 0 marksize .8
14 pts 1 .390
15 2 .389
16 3 .353
17 4 .343
18
19 xaxis
20 hash_label at 1 : Larry Walker
21 hash_label at 2 : Tony Gwynn
22 hash_label at 3 : Mike Piazza
23 hash_label at 4 : Kenny Lofton
24 hash_labels hjl vjc font Helvetica rotate -90
25
26 yaxis label : Batting Average
27 title : NL Batting Leaders, August 5, 1997
Figura 6.19.
f-bar-jgr

Alcune osservazioni in merito al listato 6.18:

  • Righe 3-6
    Si imposta la dimensione e l’intervallo dei valori per l’asse delle ascisse e si impostano le tacche sulle unità senza tacche secondarie; inoltre si indica a Jgraph di non generare le etichette di tacca in modo automatico, poiché si desidera personalizzarle.
  • Righe 8-11
    Niente di particolare da notare tranne l’attributo precision il quale specifica di includere tre decimali nelle etichette di tacca per l’asse delle ordinate.
  • Righe 13-17
    Traccia la curva tramite barre rosse verticali.
  • Righe 19-24
    Ulteriore modifica che interessa l’asse delle ascisse, generando etichette di tacca per ciascun punto e successivamente modificandole in maniera che appaiano ruotate di 90 gradi (in senso orario).
  • Righe 26-27
    Si genera un etichetta per l’asse delle ordinate e un titolo per il grafico.

L’esempio illustrato nella presente sezione dovrebbe convincere delle possibilità del programma Jgraph: è possibile generare grafici anche di una certa complessità in maniera abbastanza naturale.

Particolarità.

Poligoni.

La possibilità di tracciare dei poligoni estende non poco le capacità grafiche del programma Jgraph: è sufficiente applicare l’attributo poly alla curva da tracciare. Gli attributi pfill e pcfillpermettono inoltre di specificare una scala di grigio o un colore per la campitura del poligono.

L’attributo linethickness consente di controllare lo spessore del perimetro. È possibile campire il poligono con un disegno a strisce in alternativa alla campitura solida mediante ppattern stripe inclinazione, ove inclinazione controlla l’inclinazione delle strisce. Infine, se si indica -1 come colore di campitura del poligono viene tracciato solamente il bordo mentre l’interno rimane vuoto, il che può essere talvolta desiderabile.

Il listato 6.20 e la figura 6.20 presentano un esempio con alcuni poligoni di diversa campitura. Si osservi che Jgraph traccia le curve nell’ordine indicato, sicché è possibile prevedere le eventuali sovrapposizioni.

Listato 6.20. Jgraph: poligoni.
newgraph

xaxis min 0 max 10 size 5
yaxis min 0 max 10 size 5

(* Draw a red trapezoid -- setting both the fill and color to be red means
that the entire trapezoid, and not just the interior, will be red. *)

newline poly pcfill 1 0 0 color 1 0 0
pts 1 1 3 1 2.5 2 1.5 2

(* Draw a big black square *)

newline poly pfill 0 pts 3 3 10 3 10 10 3 10

(* Draw a thick yellow triangle with a purple, striped interior inside the black
square *)

newline poly linethickness 5 color 1 1 0 pcfill 1 0 1 ppattern stripe 60
pts 4 4 8 4 6 6

(* Draw a blue triangle with a thick border no fill *)

newline poly linethickness 10 color 0 0 1 pfill -1 pts 4 9 6 5 8 8
Figura 6.21.
f-poly-jgr
Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

 

0

Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: stringhe, etichette e legende.

La gestione delle stringhe in Jgraph avviene mediante la parola chiave newstring. Gli attributi delle stringhe sono la posizione, la fonte, la dimensione della fonte, il colore, la rotazione, l’allineamento e il testo. La posizione si imposta mediante x posizione_x y posizione_y. La fonte dev’assere una fonte PostScript.

Le fonti standard sono Times-Roman, Times-Italic,Times-Bold, Helvetica, Helvetica-Italic, Helvetica-Bold, Courier e Symbol. Il colore viene indicato tramite lcolor, oppure si utilizza lgray per indicare la scala di grigio. Gli allineamenti si specificano come segue:

  • hjl, hjr e hjc corrispondono a sinistra, destra e centro (orizzontale) rispettivamente;
  • vjt, vjb e vjc corrispondono a sopra, sotto e centro (verticale) rispettivamente.

Si può ruotare una stringa mediante rotate gradi. Si imposta il testo di una stringa mediante il carattere :, seguito da uno spazio bianco e quindi dal testo vero e proprio. Per ottenere del testo su più righe è possibile utlizzare il carattere \ al termine di ciascuna riga tranne l’ultima.

Anche le etichette dei grafici sono stringhe, quindi possono utilizzare gli attributi or ora descritti.
copystring copia tutti gli attributi di una stringa (testo incluso).


Il listato 6.10 e la figura 6.11 illustrano un esempio.

Listato 6.10. Jgraph: gestione delle stringhe.
newgraph
xaxis min 0 max 10 hash 1 mhash 0 size 7
yaxis min 0 max 10 hash 1 mhash 0 size 4

newstring hjl vjc x 1 y 1 : String #1

newstring hjr vjt x 9 y 1 fontsize 20 lcolor 1 0 0 : String #2

copystring hjl vjb x 1 y 2 fontsize 16 font Times-Italic : String #3

newstring hjr vjt x 9 y 2 fontsize 16 font Helvetica : String #4

newstring hjc vjc x 5 y 2 fontsize 16 font Symbol : String #5

newstring hjl vjb fontsize 45 font Courier rotate 90 x 5 y 5 : String #6
Figura 6.11.
f-strings-jgr

Legende.

È possibile applicare un’etichetta a una curva mediante l’attributo label: esso indica a Jgraph di creare una voce in legenda per la curva data. Il listato 6.12 e la figura 6.13 forniscono un esempio.

Listato 6.12. Jgraph: esempio di legenda.
newgraph
xaxis min 0 max 5
yaxis min 0 nodraw

newcurve marktype box linetype solid label : Line number one
pts 0 6 1 9 2 11 3 14 4 18 5 20
newcurve marktype triangle linetype dashed color 1 0 0 label : Line number two
pts 0 3 1 4 2 7 3 9 4 10 5 13
newcurve marktype none linetype dotdotdash color 1 0 1 label : And number three
pts 0 0 1 2 2 3 3 5 4 6 5 9
Figura 6.13.
f-legend1-jgr

Si possono cambiare la fonte e la posizione della legenda, come unità complessiva, scrivendo legend defaults e specificando gli attributi per le stringhe: in tal modo si modificano tutte le stringhe della legenda. Il listato 6.14 e la figura 6.15 forniscono un esempio; è istruttivo provare a modificarlo e vedere quali effetti ne sortiscano. Le legende hanno altre interessanti caratteristiche, che si trovano ben descritte nella pagina di manuale.

Listato 6.14. Jgraph: un altro esempio di legenda.
newgraph
xaxis min 0 max 5
yaxis min 0 nodraw

newcurve marktype box linetype solid label : Line number one
pts 0 6 1 9 2 11 3 14 4 18 5 20
newcurve marktype triangle linetype dashed color 1 0 0 label : Line number two
pts 0 3 1 4 2 7 3 9 4 10 5 13
newcurve marktype none linetype dotdotdash color 1 0 1 label : And number three
pts 0 0 1 2 2 3 3 5 4 6 5 9

legend defaults font Times-Italic fontsize 20 rotate 30 hjl vjt x 6 y 0
Figura 6.15.
f-legend2-jgr
Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

 

0

Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: esempi, dettagli e gestione degli assi e curve.

Jgraph è un programma che serve a tracciare grafici e diagrammi strutturati.

Diversamente da altri strumenti per il disegno, Jgraph è un programma non interattivo: legge un file di input (il sorgente) e produce un file di output (la presentazione) in formato PostScript oppure EPS.

L’output può in seguito essere quindi visualizzato, stampato, incorporato in un altro file per ulteriori elaborazioni oppure convertito in altri formati. Inoltre, si noti che Alml (il sistema di composizione SGML di Daniele Giacomini) offre supporto – a partire da gennaio 2006 – per il linguaggio Jgraph

Questo capitolo costituisce una introduzione di livello elementare all’uso e alle caratteristiche principali del programma, senza alcuna prestesa di essere esauriente; la documentazione di riferimento più completa per Jgraph è costituita dalla pagina di manuale, cui si rinvia il lettore interessato per gli eventuali approfondimenti.

Ecco l’utilizzo tipico di Jgraph:

jgraph in.jgr > out.eps[Invio]

oppure:

jgraph -P in.jgr > out.ps[Invio]

o, ancora:

cat in.jgr | jgraph -P | ps2eps -f -l -q > out.eps[Invio]

e simili.

In assenza di un nome di file dato come argomento, Jgraph legge dallo standard input.


Al fine di prendere confidenza con il programma Jgraph, cominciamo vedere alcuni semplici esempi. Per indicare a Jgraph di tracciare un nuovo grafico o diagramma si utilizza la parola chiave newgraph; quindi si aggiungono delle curve al diagramma mediante newcurve; infine si aggiungono dei punti alla curva mediante pts.

Il listato 6.1 mostra un esempio elementare, presentato graficamente in figura 6.2. Si tratta semplicemente di disegnare tre punti: (2,3), (4,5) e (1,6). Jgraph si occupa di aggiungere gli assi di riferimento e di scegliere lo stile di tracciamento dei punti; è un esempio decisamente banale, tanto per iniziare.

Listato 6.1. Jgraph: un esempio elementare.
(* Simple jgraph *)

newgraph

newcurve pts 2 3 4 5 1 6
Figura 6.2.
f-simp1-jgr

Si considerino adesso il listato 6.3 e la corrispondente figura 6.4. Si tratta di un esempio leggermente più complesso: nelle righe 1-3 si dà inizio al grafico mediante newgraph, quindi si definiscono le dimensioni degli assi; le righe 5-9 tracciano tre curve: nella prima si lascia che sia Jgraph a scegliere lo stile di tracciamento, nella seconda si specifica di indicare i punti mediante triangoli connessi da una linea solida, nella terza si specifica di non indicare i punti ma di tracciare solamente la linea che li unisce (la linea sarà tratteggiata e di colore rosso). Si noti che l’intervallo visibile degli assi è stato automaticamente calcolato in modo da contenere precisamente tutti i punti specificati nel sorgente.

Nella pagina di manuale si trovano definiti i possibili stili da associare allle parole chiave marktype e linetype. Si noti in particolare che newline è semplicemente un sinonimo per newcurve marktype none linetype solid.

Listato 6.3. Jgraph: un grafico con tre curve di tipo differente.
      1 newgraph
2 xaxis size 2
3 yaxis size 1.5
4
5 newcurve pts 0 6 1 9 2 11 3 14 4 18 5 20
6 newcurve marktype triangle linetype solid
7 pts 0 3 1 4 2 7 3 9 4 10 5 13
8 newcurve marktype none linetype dashed color 1 0 0
9 pts 0 0 1 2 2 3 3 5 4 6 5 9
Figura 6.4.
f-simp2-jgr

L’algoritmo di riconoscimento dell’input da parte di Jgraph è basato non sulle righe bensì sugli elementi sintattici (token-based); Jgraph semplicemente lavora su parole separate da spazi bianchi; i commenti devono essere inclusi fra (* e *). Gli oggetti fondamentali per Jgraph sono:

  • la pagina;
  • grafici;
  • gli assi;
  • le curve;
  • le stringhe;
  • le legende.

Si può pensare che, quando si opera sul sorgente, si stanno effettivamente creando o modificando tali oggetti nella presentazione. Pertanto, quando si scrivenewcurve, si sta in effetti modificando o creando una curva, per la quale è possibile specificare attributi, come marktype e linetype, e dei punti. La maggior parte degli attributi possiedono un valore predefinito che però è possibile cambiare. Se si specifica un attributo più di una volta Jgraph considera valida l’ultima indicazione, sicché ad esempio newcurve marktype box marktype circle equivale a newcurve marktype circle.
In parziale deroga a quanto or ora specificato, la parola chiave pts agisce in maniera «additiva», pertanto newcurve pts 0 0 1 1 2 2 equivale anewcurve pts 0 0 pts 1 1 pts 2 2.
È inoltre possibile includere dei file esterni nel sorgente Jgraph mediante include nome_file.

Gestione degli assi.
Se capita di non gradire la maniera in cui Jgraph produce automaticamente gli assi, può tornare utile la tabella 6.5.

Tabella 6.5. Jgraph: alcuni attributi degli assi.
Attributo ed eventuali valori Significato
size dimensione
Imposta la dimensione dell’asse a dimensione (in pollici).
min valore
Imposta il valore minimo a valore.
max valore
Imposta il valore massimo a valore.
hash numero_valori
Traccia una tacca (primaria) e un’etichetta di tacca ogni numero_valori valori.
mhash numero_tacche
Traccia numero_tacche tacche secondarie fra ogni due tacche primarie consecutive.
gray scala_di_grigio
Imposta la scala di grigio dell’asse a scala_di_grigio, ove zero significa nero e uno significa bianco.
color componente_rossa \
  \ componente_verde \
  \ componente_azzurra

Imposta il colore dell’asse, codificato mediante la terna RGB indicata.
nodraw
Impedisce il tracciamento dell’asse, in ogni sua parte.
draw
Garantisce il tracciamento dell’asse, in ogni sua parte.
log
Imposta la scala dell’asse come logaritmica.
linear
Imposta la scala dell’asse come lineare.
no_draw_hash_marks
Impedisce il tracciamento delle tacche lungo l’asse.
no_draw_hash_labels
Impedisce il tracciamento delle etichette lungo l’asse.
draw_at valore
Traccia l’asse in una posizione diversa dal valore minimo.
label etichetta
Imposta l’etichetta dell’asse.

Il listato 6.6 e la figura 6.7 illustrano l’uso di alcuni degli attributi descritti nella tabella 6.5.

Listato 6.6. Jgraph: uso di alcuni degli attributi degli assi.
newgraph

xaxis
size 6
min 0 max 100
hash 15 mhash 2 (* i.e. minor hashes at the 5's and 10's *)
color 1 0 0
label : This is the X axis
draw_at 10

yaxis
size 3
min 1 max 1000
log
no_draw_hash_marks
label : And this is the Y axis
color 0 1 1

newline color 1 0 1
pts 10 1
20 5
30 10
40 20
50 100
60 110
70 500
80 800
90 1000
100 1
Figura 6.7.
f-axis-jgr

Gestione delle curve.

Jgraph assume dei valori predefiniti per le dimensioni degli indicatori di punto, ma è possibile impostarli diversamente mediante marksize larghezzaaltezza. La larghezza si intende nelle unità dell’asse delle ascisse, a meno che la scala non sia logaritmica nel qual caso si intende espressa in pollici; analogamente l’altezza fa riferimento all’unità dell’asse delle ordinate.

La parola chiave copycurve permette di creare una curva avente i medesimi attributi di quella precedente (ma non gli stessi punti, ovviamente).

Il listato 6.8 e la figura 6.9 illustrano un esempio. Si noti che cfill riempie l’interno degli indicatori con il colore specificato.

Listato 6.8. Jgraph: esempio di gestione delle curve.
newgraph

xaxis min 0 max 10 size 7
yaxis min 0 max 10 size 4

newcurve marktype box marksize 1.5 1 linetype solid cfill 1 0 0
pts 1 3 2 5 3 1 4 8

copycurve marktype ellipse cfill 1 0 .5
pts 6 3 7 5 8 1 9 8
Figura 6.9.
f-curve-jgr
Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

 

0

La storia e l’evoluzione di Ubuntu in un’infografica.

Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

 

0

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 $0×80
mov $1, %eax
mov $0, %ebx
int $0×80
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

 

0

Cantor interfaccia grafica per software matematici presente nei repository di Ubuntu.

Cantor è un’interfaccia ti mette a disposizione i migliori software matematici per Ubuntu.

Per installarlo in Ubuntu andate in:

Applicazioni-Accessori-Terminale

e digitate:

 sudo apt-get install cantor 
Oppure recatevi in Ubuntu Software Center, cercate la voce “cantor” -senza virgolette, e una volta trovata cliccateci sopra.L’installazione partirà subito con tutte le dipendeze e librerie richieste.

Una volta installato per lanciare il programma andate in:

Applicazioni-Istruzione

Oppure digitate a terminale:

cantor. calgebra.jpg

Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder

 

0

10 giochi Arcade per Linux molto belli e divertenti.

Tratteremo dunque tutti i programmi utili a vivere i Giochi per Linux nel migliore dei modi.
Perchè pagare per acquistare giochi quando se ne possono avere di molto belli su Linux e completamente…

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

 

0

Il meglio di Ubuntulandia: la top ten dei post più visti nel mese di Febbraio 2014.

 1.- F-Droid fonte alternativa di applicazioni Open Source per Android.
Tutti sappiamo che lo store ufficiali delle applicazioni Android è Google Play Store. Però così come Android è un…

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]

 

0

LightScribe è una tecnologia di registrazione ottica che utilizza uno speciale rivestimento dei CD e DVD.

LightScribe è una tecnologia di registrazione ottica che utilizza uno speciale rivestimento dei CD e DVD per produrre etichette sul lato opposto al lato di registrazione con un risultato molto simile alla serigrafia monocromatica.

La superficie di un disco LightScribe è ricoperta da una tintura reattiva che cambia colore quando assorbe la luce di un laser a infrarossi con lunghezza d’onda di 780nm.

Se avente un masterizzatore che supporta la tecnologia LightScribe e avete dei supporti registrabili LightScribe, potete creare gradevoli effetti grafici sui vostri masterizzati utilizzando la vostra Ubuntu box a 64 bit. (cfr. Wikipedia).

Quella che riporto di seguito è uno procedura che ho testato su Ubuntu 9.04 a 64bit.

Installiamo i programmi per il LightScribe.

Poichè sarà necessario installare software a 32 bit su un sistema a 64, per prima cosa installiamo installiamo le librerie di compatibilità necessarie:

sudo apt-get install ia32-libs

Successivamente scarichiamo il LightScribe System Software package “deb package” e forziamo l’installazione sulla nostra architettura:

sudo dpkg --install --force-architecture lightscribe-1.18.8.1-linux-2.6-intel.deb

Scarichiamo ed installiamo anche il LightScribe Simple Application “deb package”:

sudo dpkg –install –force-architecture lightscribeApplications-1.18.6.1-linux-2.6-intel.deb


e il LaCie 4L Labeler utility “deb package”

sudo dpkg --install --force-architecture 4l_1.0-r6_i386.deb


Ora abbiamo tutto il software necessario per stampare i nostri cd LightScribe. Lanciando il comando 4L-gui verrà infatti eseguita l’utilitì della LaCie.

Layout grafici professionali con Inkscape.

Per creare un layout grafico professionale potete affidarvi al software di grafica vettoriale Inkscape con il quale è possibile impaginare e creare una grafica del cd di sicuro effetto.

Di seguito trovate un template pre-impostato con i limiti di stampa del disco LightScribe che potete usare con Inkscape.
Una volta realizzata la grafica in Inkscape, non dovete fare altro che esportare un bitmap da importare in 4L-gui per la stampa del cd.

Scarica il template LightScribe per Inkscape

Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder