Forum: PC-Programmierung Lazarus/FPC: woher kommt die Information, -lgtk-x11-2.0 zu linken?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hintergrund: Portierung eines Lazarus-Projekts (CQRlog) auf MacOS. Ist 
ein ziemlich großer Klotz, der primär auf Linux und Windows entwickelt 
worden ist (einiges davon auch $ifdef'ed). Auf FreeBSD portieren ging 
noch ganz gut, MacOS war schon etwas schwieriger, lief dann aber 
erstmal.

Allerdings spinnt die X11-Emulation auf den ARM-basierten Macs 
irgendwie, wenn Xrender ins Spiel kommt, und gtk3 benutzt Xrender, wenn 
es auf X11 läuft. Daher habe ich jetzt die kompletten Ports dort ohne 
mit Quartz statt X11 durchgezogen, was ja an sich sowieso viel 
sinnvoller ist, da es die native Grafikoberfläche ist.

Allerdings lässt sich jetzt CQRlog nicht mehr linken, weil es versucht 
-lgtk-x11-2.0 zu linken. Man sieht auch in den Linkerscripts, dass das 
da explizit drin steht:
1
% grep -r gtk-x11 .
2
./src/link11165.res:-lgtk-x11-2.0
3
./src/link22800.res:-lgtk-x11-2.0

Nur, wer sagt dem gesamten Projekt, dass das da hinein soll bzw. wie 
sage ich ihm jetzt, dass er doch bitteschön -lgtk-quartz-2.0 linken 
möge? OK, die billige Lösung wäre ein Symlink :-) … aber ich würde schon 
gern verstehen, woher Lazarus diesen Bibliotheksnamen ableitet. 
Irgendein $LINKLIB sehe ich im Projekt jedenfalls nicht.

Hmm, wenn ich im Installationsverzeichnis von Lazarus schaue, sehe ich, 
dass
1
% grep -ri gtk-x11 /opt/local/share/lazarus
2
Binary file /opt/local/share/lazarus/lcl/units/aarch64-darwin/gtk2/gtk2extra.ppu matches
3
Binary file /opt/local/share/lazarus/lcl/units/aarch64-darwin/gtk2/gtk2int.ppu matches
4
Binary file /opt/local/share/lazarus/lcl/units/aarch64-darwin/gtk2/gtk2winapiwindow.ppu matches

in diesen Unit files das offenbar drin ist. Aber woher kommt es da 
hinein? Müsste doch irgendwie beim Bauen von Lazarus erfolgt sein, oder?

: Bearbeitet durch Moderator
von Joe (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.