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?
Jörg W. schrieb: > Jetzt wollte ich für einen Test was ändern, aber der Linker findet die > C-Standardbibliothek (-lc) nicht mehr ??? Lazarus benutzt FreePascal, richtig? Und der fpc kennt nach meinem Wissen keine Option -lc. Zumindest ist in der im Internet verfügbaren Doku keine derartige Option gelistet.
Tja, ich kann dir nur sagen, dass der Linker sich drüber beschwert (cannot find library -lc). Dem Teil eine komplette Kommandozeile zu entlocken, die er aufruft, ist mir noch nicht gelungen.
:
Bearbeitet durch Moderator
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.
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?
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.
die XCode-Commandline-Tools funktionieren nur, wenn man die Lizenzbedingungen akzeptiert hat (das ist für jede Version aufs Neue notwendig). Dafür einmal eins der Tools (git, z.B.) von der Kommandozeile aus aufrufen.
xcode-select --install hat zwar was installiert, aber der Fehler ist trotzdem noch da. :-/ Nochmal gucken, ob man dem Lazarus da noch irgendwelche Pfade aktualisieren muss.
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.
https://wiki.freepascal.org/How_do_I_create_a_bug_report/de oder https://forum.lazarus.freepascal.org/index.php?topic=41538.0 Linux und MacOs sind natürlich auch eine schlechter gepflegte Kombination als Windows
Danke, die Pointer dort funktionieren zwar nicht mehr, weil sie inzwischen auf Gitlab umgezogen sind, aber da habe ich zumindest eh schon einen Account. Hab's mal eingetütet.
Bugreport hat sich gelohnt: mein vorgeschlagener Patch (sehr simpel, nur ein $IFDEF HASX um eine Zeile herum) wurde innerhalb eines Tages eingepflegt.
jepp, die Pascal, Freepascal bzw. Lazarus Pascal Community macht echt Spaß.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.