Newsgroup: it.comp.os.linux.development
Titolo: GTK, libglade, Windows, MinGW

Da un po' di tempo mi sono messo a cercare una valida soluzione per 
costruire applicazioni C/C++ che girino senza grosse modifiche sotto 
Linux e simili e sotto Windows, ho trovato diverse suluzioni ma nessuna 
mi ha convinto molto. Quello che cerco è anche un sistema che mi 
permetta di separare il più possibile il codice dell'interfaccia dal 
codice vero e proprio dell'applicazione. Mi interessa molto anche la 
possibilità di costruire l'interfaccia in XML.
Una delle possibilità che ho trovato è stata wxWindows: visto così 
sembrava esattamente quello che cercavo, ma la dimensione degli 
eseguibili, l'instabilità generale, e l'api utilizzata non mi piacciono 
per niente.
Un'altra possibilità che mi è sembrata molto ma molto interessante è 
quella offerta dal team di Mozilla col loro linguaggio XUL, ma dopo 
estenuanti ricerche non ho trovato molto materiale in proposito, ho 
avuto l'impressione che non sia ancora una tecnologia abbastanza matura 
x essere usata da uno sviluppatore qualsiasi per creare nuove applicazioni.
Alla fine ho scoperto le GTK+ che mi son piaciute molto sia come pulizia 
del codice che come semplicità di installazione (anche sotto windows, 
basta installare il runtime) e mi ha colpito ancor di più la possibilità 
di utilizzare la libglade per sviluppare interfacce in xml.
A questo punto però ho avuto dei problemi: vorrei provare a sviluppare 
qualche programma GTK sotto windows utilizzando minGW ed il porting di 
GTK+2 e libglade, ma non sono riuscito a mettere insieme tutte le 
librerie necessarie e a compilare qualcosa senza ottenere una valanga di 
errori, non è possibile trovare da qualche parte un file zippato con un 
sistema di questo tipo completo o quasi? mi pare incredibile che anche 
solo per iniziare ci si debba districare in files di configurazione e 
scaricare le varie librerie una per volta incrociando le dita ad ogni 
compilazione! aiuto! possibile che la portabilità del codice sia così 
sottovalutata? io penso che un maggior supporto delle GTK sotto windows 
porterebbe allo sviluppo di molte nuove applicazioni anche per Gnome.
Eventualmente potreste darmi qualche dritta di dove posso trovare tutto 
il necessario per mettere insieme un sistea per compilare programmi 
GTK+2 sotto win?
Un altro dubbio: un'applicazione che usa GTK deve per forza avere 
licenza GPL? si può utilizzare GTK a fini commerciali?
Grazie dell'attenzione e mi scuso se ho scritto troppo!
P.S. ho scartato a priori QT perchè ho visto che non è utilizzabile a 
fini commerciali se non pagando una licenza

Ciao, no-nick!
Il giorno 14/09/2003 alle ore 14:15 hai scritto:
 nn> P.S. ho scartato a priori QT perchè ho visto che non è utilizzabile a
 nn> fini commerciali se non pagando una licenza
Gia' che guaio vero ? Comodo guadagnare sul lavoro degli altri, bell'esempio
di open source.
Bye

Uno Sconosciuto ha scritto:

non è proprio questo quello che ho intenzione di fare, visto che non
ho nemmeno mai fatto nulla di commerciale in vita mia, ma se tu
dovessi iniziare un progetto (commerciale o no) sceglieresti una cosa
per cui forse dovrai pagare una licenza oppure no?
e pensa a quanti progetti nascono come commerciali e poi diventano
free, pensa a quanti programmatori non fanno nulla che giri sotto
linux solo perchè non conoscono alternative alle MFC...
Sicuramente qualcuno sfrutterà il lavoro degli altri, ma mi sembra
una cosa da niente rispetto ai vantaggi che se ne possono ricavare!

 licenza GPL? si può utilizzare GTK a fini commerciali?
Si, la licenza di GTK e' LGPL, quindi il tuo codice puo' avere la 
licenza che vuole, a patto che linki dinamicamente le DLL (su win32 tra 
l'altro non c'e' altro modo :) )
Bye,
  Gabry

Gabriele Greco ha scritto:

grazie mille!
ce l'ho fatta!! (mingw, gtk-2.0 e libglade) :-)
per ora ho usato solo una riga di comando alquanto brutta, ma la
posto in caso tornasse utile a qualcuno
gcc -o $@ test.c -IC:/MinGW/include/gtk-2.0 
-IC:/MinGW/lib/gtk-2.0/include -IC:/MinGW/include/atk-1.0 
-IC:/MinGW/include/pango-1.0 -IC:/MinGW/include/glib-2.0 
-IC:/MinGW/lib/glib-2.0/include -LC:/MinGW/lib -mms-bitfields -lglib-2.0 
-lintl -liconv -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 
-lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 
-lgmodule-2.0 -lglade-2.0

Uno Sconosciuto wrote:

Le QT sono utilizzabili a fini commerciali. Ci sono alcuni sviluppatori
di KDE che vengono pagati per farlo, ed usano le QT edizione Free, che
sono sotto GPL. La loro licenza implica che ogni programma che verrà
linkato alle QT edizione Free, deve essere sotto GPL. Ma come dice il
sito della GNU (vedi ad esempio: 
http://www.gnu.org/philosophy
selling.html ) si possono benissimo fare programmi commerciali (se per
commerciali intendi da vendere) sotto GPL. Semplicemente, si devono
rispettare le sue clausole.
-- 
Andrea Bergia - studente              Linux Registered User #281550

 per niente.
uhm... io ho usato un po' wxwindows e non ho avuto problemi, cosa intendi
per
"instabilità" ? e per la dimensione degli eseguibili: se usi una .dll o .so
non dovrebbero
essere troppo grandi.

Implacabile ha scritto:

l'instabilità l'ho notata sia con alcuni degli esempi forniti
sia con altri programmi che usano wxwindows.. non so, magari
è solo il mio computer che ha qualche problema..
x la dimensione è vero che si può usare una dll, ma non posso
costringere nessuno a scaricare una grossa dll solo per far
andare i miei programmini, quindi trovo + interessante l'idea
dei runtime di GTK: basta scaricarlo e tutti i programmi GTK
funzionano, se per esempio uno ha già installato Gimp sotto windows
anche il mio programma funzionerà

 andare i miei programmini, quindi trovo + interessante l'idea
vabbe' ma persino con un modem 56k puoi tranquillamente scaricarti
la dll, pensa alle migliaia di programmi scritti con le MFC, la .dll e'
grossa
2 mega, eppure in ambiente windows e c++ sono uno standard.

 anche il mio programma funzionerà
Calma. Prima di tutto per le gtk2 ti servono gtk,glib,atk,gobject ...
Non so quanto sia piu' snello di wx. Gimp usa ancora gtk1.2
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Adding features does not necessarily increase functionality -- it just
		makes the manuals thicker. !>-

 Non so quanto sia piu' snello di wx. Gimp usa ancora gtk1.2
Mi sono spiegato male, quello che volevo dire è che per far
funzionare un'applicazione che usa gtk2 sotto windows basta
scaricare un pacchetto chiamato runtime che contiene tutto
il necessario a far girare un qualsiasi programma gtk2.
In effetti Gimp usa gtk 1.2, ma il mio voleva essere solo
solo un esempio di programma gtk diffuso.
Per quanto riguarda wx invece da quel che ho capito il modo
più diffuso di costruire le applicazioni consiste nel linkare
staticamente la libreria, volendo si può anche linkare la dll
ma non è una pratica molto diffusa e non c'è, da quello che ho
visto, un pacchetto runtime standard che un qualunque utente
windows si può scaricare e installare con un clic una volta sola
e gli permette di usare tutti i programmi fatti con wx.
Quindi questa differenza mi fa preferire gtk, e spero che
anche gli sviluppatori di wx seguano questa strada prima o poi.
(ripeto che sono un niubbo di queste cose, se non è così fatemi sapere!)

 il necessario a far girare un qualsiasi programma gtk2.
solo che sotto win32 la wxwindows usa i widget nativi di windows,
mentre il gtk se li disegna lui, col risultato che le applicazioni non
assomigliano affatto alle applicazioni "native"... un sacco di gente
appena vede il gimp per windows storce il naso e dice che ha un
aspetto orribile (e quindi non lo usa...)
e poi devi pur distribuire il setup del gtk insieme al tuo programma!
oppure conti di dire alla gente: "ecco scaricatevi qui il setup del gtk,
poi installatelo, poi scaricate il setup del mio programma, poi
installate pure lui".....   figurati se la gente lo fa ! in alternativa
dovresti
distribuire il gtk con la tua applicazione, ma allora va a finire come
con la wxwindows! vedi te, secondo me non guadagni poi tanto.
(e anzi perdi qualcosa perche' col gtk devi programmare in c, mentre
con la wx puoi usare il c++, che penso sia molto meglio per
sviluppare).
comunque ognuno ha i suoi gusti.
ps hai visto il borland c++ builder x ? (usa la wx come framework!)

 ps hai visto il borland c++ builder x ? (usa la wx come framework!)
ho visto la demo in flash, vermante una buona mossa x borland!
non vedo l'ora di provarlo.. e sarebbe bello se ne facessero
una versione open, il fatto che usi wx mi piace
ma scommetto che funziona anche con gtk ;-)

> ma scommetto che funziona anche con gtk ;-)
hehe, lo spero bene !!!

 
in attesa di provare c++builder x...
prova questo:
http://www.parinya.ca/
mingw developer studio!


lo conosco, pero' mi rifiuto di usarlo perche' non e' open source: temo che
tra un po'
l'autore cominci a chiedere dei soldi. per carita', lo puo' fare, ma almeno
lo dica prima!
secondo me sta facendo il furbo. invece uso il dev-c++ (
www.bloodshed.net
).
per le wxwindows uso wxglade come gui builder (fatto da italiani,
oltretutto!)
(
wxglade.sf.net
)

 anche gli sviluppatori di wx seguano questa strada prima o poi.
Secondo me il discorso non sta in piedi. Se linki staticamente il programma
diventa elefantiaco. Puo' darsi che gli sviluppatori non prevedano un
runtime da scaricare. Allora lo fai tu. O in alternativa distribuisci le dll
con il tuo programma. Ma e' lo stesso _identico_ discorso che si ha con le
MFC e/o la VCL borland.
NP: Nevermore - The Death Of Passion
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
        **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
 [cowo@braveheart cowo]$ make sex
    make: *** No rule to make target 'sex'.  Stop.