Lazarus auf MacOS findet -lc nicht

Moderator Persönliche Seite #7421997
Lesenswert?

Habe hier ein Lazarus-Projekt (CQRlog), welches ich vor einiger Zeit auf MacOS schon erfolgreich compiliert hatte.

Jetzt wollte ich für einen Test was ändern, aber der Linker findet die C-Standardbibliothek (-lc) nicht mehr – an den Projekteinstellungen wurde jedoch in der Zeit nichts geändert. Kann allerdings sein, dass es mittlerweile mal einen XCode-Update gab.

Hat jemand eine Idee, woher diese Bibliothek kommen müsste?

Gast #7422531
Lesenswert?

https://forum.lazarus.freepascal.org/index.php?topic=39431.0

mal mit libc versucht? https://wiki.freepascal.org/libc_library

{$linklib c} is indeed the only correct way, and this is an error in the manual.

-k-lc just passes the "-lc" command line parameter to the linker, without the compiler having any clue about what it does. This means that the C library will be linked, but nothing else gets changed.

Moderator Persönliche Seite #7422553
Lesenswert?

Gerade mal ein rekursives Grep drüber geschickt. Sieht so aus, als ob beispielsweise OpenSSL da nach "Libc" ruft.

Die Frage für mich ist ja nur: an der Lazarus- oder FreePascal-Installation habe ich seit dem letzten erfolgreichen Compile nie was geändert. Kann nur sein, dass ich das zugrunde liegende XCode (Compiler / Development-Tools auf MacOS) mal aktualisiert habe. Selbst habe ich an solchen Optionen sowieso nichts gedreht.

Wo zum Geier sucht er denn überhaupt eine libc und warum sollte sie plötzlich entschwunden sein?

Moderator Persönliche Seite #7422560
Lesenswert?

Ich hatte gestern Abend schon mal eine Suchmaschine angeworfen, aber irgendwie nichts sinnvoll passendes gefunden. Das hier:

https://forum.lazarus.freepascal.org/index.php?topic=61430.0

könnte als Hinweis passen. Bin mir eigentlich ziemlich sicher, dass ich die XCode command-line tools schon hatte (sonst hätte es ja früher nicht funktioniert), aber muss man die nach dem Upgrade von XCode jetzt erneut nachziehen. Mache ich gerade, braucht nur noch paar Minuten.

Moderator Persönliche Seite #7422628
Lesenswert?

Irgendwie hätte man das wohl in (/opt/local)/etc/fpc.cfg ändern müssen.

Habe dann kurzerhand fpc und lazarus deinstalliert und neu installiert. Dabei wird fpc.cfg sowieso neu gebaut. Nachdem ich den gtk2-Modul wieder debuggt habe*), und in fpc.cfg noch den Macports-Pfad für die Bibliotheken nachgetragen habe, lässt es sich zumindest bauen. Es spuckt allerdings beim Linken jetzt noch massig Meldungen über nicht passende SDK-Versionen zwischen den FPC-Modulen und meinem aktuellen Compilat aus, das muss ich mir nochmal ansehen.

*) Da fehlt ein $ifdef:

1
{$IFDEF HASX}
2
    FWSFrameRect := Rect(0, 0, 0, 0);
3
{$ENDIF}

FWSFrameRect wird an anderen Stellen nur innerhalb "HASX" angelegt, aber hier ohne das $ifdef referenziert (MacOS benutzt kein X11). Wenn mir einer sagen kann, wo ich das als Bug berichten kann, mach ich es.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren