* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 25, 2024, 03:56:33 am

Inserisci il nome utente, la password e la durata della sessione.

35 Visitatori, 0 Utenti

Autore Topic: Mac Os X: Problemi di compilazione  (Letto 5367 volte)

CortelliStefano

  • Newbie
  • *
  • Post: 37
  • Karma: +0/-0
Mac Os X: Problemi di compilazione
« il: Aprile 20, 2012, 05:31:27 pm »
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:

Codice: [Seleziona]
{$DEFINE gtk2}
{$DEFINE UNIX}

ed ho potuto proseguire con la compilazione.

Ora pero' sono bloccato sul modulo GtkWSArrow:

Codice: [Seleziona]
  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:

Codice: [Seleziona]
  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


Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2389
  • Karma: +10/-0
Re:Mac Os X: Problemi di compilazione
« Risposta #1 il: Aprile 20, 2012, 10:21:22 pm »
Ciao,
 allora, a me lazarus (9.30.4) segnala gtk deprecato.. quindi c'è il serio rischio che non sia più supportato avanti nelle versioni. (Tradotto se lo usi ti troverai in braghe di tela)
Googlando un pochino ho trovato che ci sono problemi con le GTK, ma tutti risolti e chiusi.
Anche nel bug track di FP sono stati chiusi. Ammetto di aver cercato rapidamente, ma la sensazione generale è che non siano le GTK a fare "confusione".

PS:
Il file che indichi dare problemi ... io non ce l'ho a bordo della mia installazione, per le GTK2 ... che libreria grafica hai impostato sull'ide? gtk o gtk2?
« Ultima modifica: Aprile 20, 2012, 10:28:18 pm da Stilgar »
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

CortelliStefano

  • Newbie
  • *
  • Post: 37
  • Karma: +0/-0
Re:Mac Os X: Problemi di compilazione
« Risposta #2 il: Aprile 20, 2012, 11:13:00 pm »
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:

Codice: [Seleziona]
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:

Codice: [Seleziona]
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

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2389
  • Karma: +10/-0
Re:Mac Os X: Problemi di compilazione
« Risposta #3 il: Aprile 20, 2012, 11:39:46 pm »
Ciao, a casa solo Windows dal 95 in poi .... quindi non posso operare direttamente i test.

Che sia installato X11 è una cosa, che Freepascal quando compila, trovi le librerie è un'altra cosa.

Quello che ti sta dando errore non è il compilatore ma il linker.
Non vede le LIB o gli OBJECT da legare.
In pratica il processo di compilazione avviene a fasi.
La prima è il riconoscimento del testo (Controllo del rispetto della Grammatica)
Controllo semantico del testo (Generazione codice detto "Oggetto")
Poi arriva il Linker che confeziona il file eseguibile dal codice "oggetto" e le librerie.

Le prime due fasi, il compilatore non entra nel merito del "corpo" della funzioni/procedure. Basta che riesca a trovare i simboli e le "firme" delle funzioni.

E' il linker che fa il lavoro "sporco" di mettere tutto assieme.

Con i compilatori della famiglia pascal, questi passaggi sono "trasparenti" e nascosti.

Da quello che capisco della tua ultima, è come se mi incazzassi con il compilatore C++ (Gnu, Microsoft o di chiunque altro) perchè non mi aggancia le dll.
Non conta che siano presenti sul file system. Bisogna che ci sia un ".h" e un ".lib" che il compilatore riesca a usare.
Con Delphi ti attaccavi alle DLL conoscendo le firme delle funzioni esportate. Ma non potevi usare gli oggetti esportati dalle DLL. Con il C++ Microsoft, ci si riesce.
Questo è dovuto a due elementi: ".h" e ".lib" usati dal compilatore.
Ora non so su Mac, ma se non hai installato anche il pacchetto di sviluppo X11 ... credo ti riesca difficile linkare le cose ... ma non conosco Mac, quindi potrebbe essere una cretinata quello che ti sto dicendo.
Verificherei la presenza di pacchetti X11 di sviluppo.

Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2389
  • Karma: +10/-0
Re:Mac Os X: Problemi di compilazione
« Risposta #4 il: Aprile 20, 2012, 11:43:22 pm »
PS:
La digressione sul C++ l'ho fatta, visto che FreePascal si appoggia al gcc. Basta controllare la cartella (nel mio caso) D:\Programmi\Lazarus\fpc\2.6.0\bin\i386-win32\.

Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

CortelliStefano

  • Newbie
  • *
  • Post: 37
  • Karma: +0/-0
Re:Mac Os X: Problemi di compilazione
« Risposta #5 il: Aprile 22, 2012, 04:52:26 pm »
Grazie per la risposta, provo a vedere se riesco a trovare qualcosa per X11, anche se googlando un po' non ho trovato granché.

Prima devo risolvere però un problema molto importante, e cioè perché le UIB sembrano non funzionare sotto Mac Os Lion e Firebird 2.5.1 lipo (che dovrebbe quindi avere anche le librerie a 32-bit).

Mi sa che se non riesco a risolvere apro un post a parte per questo.

Intanto ancora grazie per l'aiuto e buona domenica,

Stefano

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19189
  • Topic in totale: 2289
  • Online Today: 50
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 35
Total: 35

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.