Un saluto a tutti, sto cercando di fare il porting di un mio progetto che funziona regolarmente sotto Linux e sotto Windows verso Mac Os X e per la precisione Mac Os 10.7 Lion. La versione di Lazarus e' la 0.9.28.2.
Dopo avere risolto con l'aiuto di Stilgar (ancora grazie!) alcuni problemi con i componenti, la compilazione si arresta per alcuni errori. Finora sono riuscito a risolverli, si trattava per lo più di aggiungere PATH nelle opzioni del compilatore perché' altrimenti non trovava le unit. Fin qui tutto a posto, anche se sotto Linux e sotto Windows finora non e' mai stato necessario.
Nei moduli GtkDebug, GtkDef e GtkProc ho inserito le direttive di compilazione:
{$DEFINE gtk2}
{$DEFINE UNIX}
ed ho potuto proseguire con la compilazione.
Ora pero' sono bloccato sul modulo GtkWSArrow:
TGtkWSWinControl.SetCallbacks(PGtkObject(AGtkWidget), TComponent(AWidgetInfo^.LCLObject));
/Developer/lazarus/lcl/interfaces/gtk/gtkwsarrow.pp(80,55) Error: Incompatible type for arg no. 1: Got "GTK2.PGtkObject", expected "GTK.PGtkObject"
Se nelle direttive di compilazione metto gkt1 invece di gtk2 l'errore l'ottengo qui:
Set_RC_Name(AWinControl, EventBox);
/Developer/lazarus/lcl/interfaces/gtk/gtkwsarrow.pp(107,36) Error: Incompatible type for arg no. 2: Got "GTK.PGtkWidget", expected "GTK2.PGtkWidget"
Ci sono quindi "confusioni" tra gtk e gtk2, mi sembra di capire.
Qualcuno ha qualche consiglio per riuscire a risolvere il problema?
Grazie per qualsiasi suggerimento, buona giornata a tutti,
Stefano
Ciao e grazie per la risposta. La mia intenzione era di compilare con le GTK2, che già uso con successo sotto Linux.
Ho quindi indicato GTK2 nelle opzioni del compilatore e aggiunto di volta in volta i path necessari sempre nelle opzioni del compilatore, ma sono ancora bloccato con l'errore del modulo GtkWSArrow e non riesco a venirne a capo perché anche googlando non ho trovato per ora niente di utile.
Ho invece provato a compilare per Carbon ed alla fine ci sono riuscito, ho dovuto solo aggiungere una direttiva di compilazione CARBON1 nel modulo interfaces per carbon, e poi anche qui aggiungere di volta in volta i path necessari nelle opzioni di compilazione.
Purtroppo l'interfaccia Carbon si comporta in modo molto diverso da GTK2 o Win32, per lo meno su un progetto molto complesso, e devo capire perché la chiusura di una form secondaria chiude il progetto. Devo studiarci sopra.
Ho provato anche con un progetto nuovo, un semplice bottone ed una casella di testo: con GTK2 da' errore alla compilazione:
Id: library not found for -lgtk-x11-2.0
Error: Error while linking
ma X11 è già installato su Mac Lion, è presente in /usr/X11 ed anche in /Applications/Utilities/X11.app
Anche con GTK (ormai obsoleto) da' errore alla compilazione:
Id: library not found for -lglib-1.2.0
Error: Error while linking
Solo con la Carbon riesco a compilare correttamente.
Non escludo che magari dalla 0.9.28.2 alla 0.9.30.4 siano stati risolti questi problemi, il fatto è che le versioni successive di Lazarus hanno una serie di bachi piuttosto fastidiosi ed attualmente, almeno per quello che devo fare, la 0.9.28.2 e la versione migliore.
Tu con la 0.9.30.4 riesci a compilare con Mac Os Lion?
Se hai qualche consiglio... ti ringrazio davvero. ;)
Ciao e grazie ancora, buona serata,
Stefano