PDA

View Full Version : [C] sviluppare in Linux


Barbalbero
25-10-2007, 12:11
Ciao a tutti.
Dovrei programmare in C in ambiente Linux.
Utilizzare gedit e poi compilare con gcc è l'unico modo?
Dove trovo una guida alle librerie di linux? (in particolare mi piacerebbe una guida tipo quella del Borland C a cui sono tanto affezionato)

Domande banali, ma non so da dove iniziare.
Grazie

ilsensine
25-10-2007, 12:17
Se cerchi un IDE, puoi usare eclipse con CDT, kdevelop o altri.

Per la documentazione, hai a disposizione le man page. C'è anche la guida di riferimento delle libc, ma non è molto didattica. Un buon libro sul c ti è più utile.

Barbalbero
25-10-2007, 12:24
no ok. Va benissimo gcc.
Ciò che devo fare sono semplici programmini ultraveloci. Meglio non incasinarsi sul compilatore.
ESATTO: le man pages sono quello che cercavo. Però sulle man pages (scrivendo ad esempio "man printf") posso trovare solo le funzioni che conosco già.
Io in pratica ho bisogno di imparare le funzioni grafiche, ma non conoscendo né la libreria, né le funzioni, come faccio? non c'è un indice?

71104
25-10-2007, 12:25
Se cerchi un IDE, puoi usare eclipse con CDT, kdevelop o altri.

Per la documentazione, hai a disposizione le man page. C'è anche la guida di riferimento delle libc, ma non è molto didattica. Un buon libro sul c ti è più utile.

un buon libro sul C lo istruirebbe presumibilmente sull'ANSI C, ma non credo che gli serva visto che usava Borland C. adesso dovrebbe istruirsi più che altro su POSIX e sulle altre chiamate di Linux, quindi direi solo man pages.

71104
25-10-2007, 12:26
no ok. Va benissimo gcc.
Ciò che devo fare sono semplici programmini ultraveloci. Meglio non incasinarsi sul compilatore.
ESATTO: le man pages sono quello che cercavo. Però sulle man pages (scrivendo ad esempio "man printf") posso trovare solo le funzioni che conosco già.
Io in pratica ho bisogno di imparare le funzioni grafiche, ma non conoscendo né la libreria, né le funzioni, come faccio? non c'è un indice?

per quello devi vedere la documentazione di un toolkit grafico come GTK o come wxWidgets o come tanti altri ne esistono.

Barbalbero
25-10-2007, 12:31
In Borland c'era la <graphics.h>
non esiste niente di simile in linux?
devo per forza complicarmi la vita con GTK? (che non so nemmeno cos'è, né come si usa né niente)

Barbalbero
25-10-2007, 12:32
ah NOTA: devo solo tirare quattro linee e 2 punti. Disegnare qualche grafico insomma, non ho bisogno di fare interfacce grafiche

71104
25-10-2007, 12:35
ah NOTA: devo solo tirare quattro linee e 2 punti. Disegnare qualche grafico insomma, non ho bisogno di fare interfacce grafiche
niente GUI? e dove vorresti tirarle ste 4 linee e 2 punti? :wtf:
quantomeno devi aprire una finestra, a meno che non vuoi fare un'ASCII-art :D

71104
25-10-2007, 12:37
In Borland c'era la <graphics.h>
non esiste niente di simile in linux?
devo per forza complicarmi la vita con GTK? (che non so nemmeno cos'è, né come si usa né niente)

supponi di provenire da anni di programmazione Linux tramite GTK e di passare alla programmazione in Borland C per Windows, con graphics.h; quale sarebbe stata la tua frase? più o meno qualcosa come:

"In Linux c'era GTK
non esiste niente di simile in Windows?
devo per forza complicarmi la vita con graphics.h? (che non so nemmeno cos'è, né come si usa né niente)"

:D

Barbalbero
25-10-2007, 12:40
Insomma....in Borland includevo sta benedetta libreria. Inizializzavo la grafica e la finestra DOS mi non era più ascii, ma si trasformava in un "foglio nero" e da qui iniziavo a tirar linee a manetta tipo line(x1,y1,x2,y2).

Mi va benissimo anche aprire una finestra, anche una porta, non lo so! :D
Vorrei solo capire qual'è il modo più rapido

Barbalbero
25-10-2007, 12:43
supponi di provenire da anni di programmazione Linux tramite GTK e di passare alla programmazione in Borland C per Windows, con graphics.h; quale sarebbe stata la tua frase? più o meno qualcosa come:

"In Linux c'era GTK
non esiste niente di simile in Windows?
devo per forza complicarmi la vita con graphics.h? (che non so nemmeno cos'è, né come si usa né niente)"

:D

Beh..ma graphics.h era una liberia. Si tratta di includerla e imparare 4 funzioni.
GTK+ che sto leggendo adesso su wikipedia, mi sembra un qualcosa di un tantino più aspro

71104
25-10-2007, 12:48
Insomma....in Borland includevo sta benedetta libreria. Inizializzavo la grafica e la finestra DOS mi non era più ascii, ma si trasformava in un "foglio nero" e da qui iniziavo a tirar linee a manetta tipo line(x1,y1,x2,y2).
o... mio... Dio... :|

ho guglato su questa graphics.h di Borland C... cioè è roba di decenni fa eh... cioè serviva a fare grafica in DOS, non so se mi spiego, io a momenti ancora non avevo ricevuto il mio primo computer :D

e per quanto appena detto direi proprio che su Linux (ma neanche su Windows immagino) non troverai mai nulla di simile :D

Barbalbero
25-10-2007, 12:52
Esatto! roba di decenni fa :D
però semplice, rapida, indolore.
Bah...dovrò imparare ad usare sto benedetto GTK.
Qualche consiglio per iniziare?

71104
25-10-2007, 12:58
Qualche consiglio per iniziare? mai chiedere a me consigli per iniziare: sono un patito dei references ufficiali, di quelli completi dettagliati crudi e aspri; dovessi imparare io a programmare in GTK mi cercherei la documentazione delle API e me la leggerei da cima a fondo :|
(per le API Win32 è stato più o meno così :asd: )

variabilepippo
25-10-2007, 13:20
No, non hai bisogno di GTK, puoi usare la famosa http://www.svgalib.org/. Questo è un semplice esempio:


#include <stdlib.h>
#include <vga.h>

int main(void)
{
vga_init();
vga_setmode(G320x200x256);
vga_setcolor(4);
vga_drawpixel(10, 10);

sleep(5);
vga_setmode(TEXT);

return EXIT_SUCCESS;
}


Non è poi molto diversa dalla BGI di Mamma Borland, in compenso è MOOOLTO più potente! :D

homer87
25-10-2007, 13:27
Se non ti serve fare un'interfaccia grafica in stile gnome, ci sono le ncurses...
http://www.pluto.it/files/ildp/traduzioni/ncurses-intro/ncurses-intro.html

ilsensine
25-10-2007, 13:32
No, non hai bisogno di GTK, puoi usare la famosa http://www.svgalib.org/.
Pazzoooo! :D

x Barbalbero: di toolkit ne abbiamo in quantità. Io mi trovo bene con questo:
www.fox-toolkit.org

Oppure, se devi solo disegnare un paio di linee, usa le SDL (che, a differenza di svgalib, hanno il piccolo vizio di essere portabili e perfettamente integrate con X).

variabilepippo
25-10-2007, 13:46
Oppure, se devi solo disegnare un paio di linee, usa le SDL (che, a differenza di svgalib, hanno il piccolo vizio di essere portabili e perfettamente integrate con X).


Ero indeciso se segnalare anche GGI (http://www.ggi-project.org/) e SDL (http://www.libsdl.org), ma poi mi sono limitato alla soluzione più somigliante alla libreria BGI, non ho provato a compilarne il porting (http://www.ibiblio.org/pub/linux/libs/graphics/bgi_library.tar.gz) (sì, esiste :)) su distribuzioni recenti di Linux, così l'utente rischia di non trovarsi troppo spaesato. :)

Comunque non penso che Barbalbero abbia bisogno di un framework per GUI (GTK, Fox-Toolkit, wxWidgets, QT, ...) né di creare interfacce testuali con ncurses.

Barbalbero
25-10-2007, 13:51
Oh!!! Grazie!
Penso che proverò le svgalib, che mi intrippano già dal nome :)
poi vedrò di documentarmi su SDL e GGI.

In sostanza mi serve solo diregnare dei pixel (linee cerchi ecc..) col maggior rapporto velocità/difficoltà
Devo fare grafici, simulazioni e balle simili..

ilsensine
25-10-2007, 13:53
Penso che proverò le svgalib, che mi intrippano già dal nome :)
NO FERMO SEI ANCORA GIOVANE! :D

Usa le SDL, vanno benissimo per le tue necessità.

variabilepippo
25-10-2007, 13:55
La SDL è veramente ben fatta, però per i tuoi scopi SVGALIB&Co dovrebbero essere sufficienti.

Dai anche uno sguardo a BGI per Linux (http://www.ibiblio.org/pub/linux/libs/graphics/bgi_library.tar.gz), potrebbe compilare ma non ne sono troppo sicuro.

Barbalbero
25-10-2007, 13:57
NO FERMO SEI ANCORA GIOVANE! :D

Usa le SDL, vanno benissimo per le tue necessità.

Forse hai ragione... dal poco che ho letto credo che sia anche un sistema più veloce delle svgalib, poiché supportano direttamente la scheda video(e anche funzioni 3D).
O sbaglio?

variabilepippo
25-10-2007, 14:00
Il consiglio di SVGALIB e BGI vale solo in termini di facilità di apprendimento rispetto alle tue conoscenze pregresse (sono librerie vecchie, poco potenti e lente), in tutti gli altri casi conviene usare SDL (il codice è facilmente portabile anche in altri sistemi operativi).

Barbalbero
25-10-2007, 14:03
Il consiglio di SVGALIB e BGI vale solo in termini di facilità di apprendimento rispetto alle tue conoscenze pregresse (sono librerie vecchie, poco potenti e lente), in tutti gli altri casi conviene usare SDL (il codice è facilmente portabile anche in altri sistemi operativi).

No beh...sono pronto a sudare un pochino, per usare funzioni più potenti. Non ho 90 anni, posso ancora apprendere :)
SDL mi esalta :sofico:

ilsensine
25-10-2007, 14:04
Forse hai ragione... dal poco che ho letto credo che sia anche un sistema più veloce delle svgalib, poiché supportano direttamente la scheda video(e anche funzioni 3D).
O sbaglio?
Le svgalib sono un pezzo da museo quindi non porti ulteriori domande.

71104
25-10-2007, 19:28
NO FERMO SEI ANCORA GIOVANE! :D eh insomma... quantomeno ha visto il DOS, e l'ha visto ad un'età in cui già programmava :D