MacOS: compiler: cannot find...

Für Installationen unter MacOS u.a. Betriebssystemen
Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

MacOS: compiler: cannot find...

Beitrag von Martin V »

Hallo,
mir ist nicht gelungen, Lazarus 1.4.0 und 1.4.2 unter MacOS zu installieren. Ich habe 2 Jahre kein neues Lazarus mehr installiert und früher klappte es. Ich habe jetzt einen halben Tag versucht, auf der Einstellungen-Seite zu Compiler path verschiedene Verzeichnisse anzugeben, damit er seine eigenen Units verwenden bzw. compilieren kann. Ich habe die alte Lazarus Installation gelöscht und die Installation somit neu gestartet, weil sonst bekannterweise Compilerfehler kommen können. Es kommt bei Lazarus 1.4.2 etwa:
Fatal: Cannot find LResources used by ColorPalette, incompatible ppu
Der Editor findet die gewünschte Quelldatei problemlos, ein Eintragen des Pfades unter "other unit files" bleibt wirkungslos, auch ein Neuanmelden der Package. Beim Neucompilieren der Package kommt wieder dieselbe Fehlermeldung.
Es liegt nicht speziell an der konkreten Package, ich hatte bei anderen Programmen das Problem auch. Selbst ein neues Projekt mit leerer Form führt zu "can't find unit interfaces uses by Project1"

Bei 1.4.0 ist das Verhalten ähnlich, wenn auch im Detail mit anderen Effekten. Was mache ich falsch?

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Meine Vermutung ist ein 32bit/64bit Problem mit dem Compiler. Du willst wahrscheinlich die carbon lcl und die gibt es nur mit 32bit. Wenn dann aber fpc 64bit macht, kommt dein Fehler. Mit "fpc -iTP" kannst du sehen, was fpc macht. Den Prozessor in Menu Projekteinstellungen → Compilereinstellungen → Ziel-CPU-Familie auf i386 setzen. Sollte dann klappen.
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

'tschuldigung für die Aufregung. Ich habe jetzt herausgefunden, dass ich nur Lazarus installiert habe und den fpc und den fpcsrc nicht installiert habe. Damit gibt es dann ein totales Versionsdurcheinander mit der früheren Version. Allerdings wundert es mich, dass überhaupt etwas ging, weil ich /Developer/lazarus umbenannt habe, scheinbar liegen die fpc und fpcsrc dateien woanders.

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:'tschuldigung für die Aufregung. Ich habe jetzt herausgefunden, dass ich nur Lazarus installiert habe und den fpc und den fpcsrc nicht installiert habe. Damit gibt es dann ein totales Versionsdurcheinander mit der früheren Version. Allerdings wundert es mich, dass überhaupt etwas ging, weil ich /Developer/lazarus umbenannt habe, scheinbar liegen die fpc und fpcsrc dateien woanders.

(* Achtung Eigenwerbung *)
Benutzt du fink, den Paketmanager für Mac OS X? Dann kannst du fpc und lazarus auch damit installieren. Ich habe die Paketbeschreibungen für fpc und lazarus (carbon, Qt und gtk2) gemacht. Damit sollten solche Probleme nicht auftreten, zumindest so lange man fpc und lazarus nicht doppelt installiert, also von disk images UND mit fink.

MiSchi
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Gut, das war jetzt nicht wirklich ein Problem, sondern ein DAU-Fehler. Doch jetzt habe ich es korrigert, ich hänge wieder an anderen Stellen mit dem Compilieren der LCL. Dann habe ich das uninstall-Script von der Seite http://wiki.freepascal.org/Installing_L ... on_MacOS_X laufen lassen und noch von Hand nachgearbeitet. Dann ging es wieder etwas besser. Aber jetzt hänge ich im Bereich Printers4Lazarus, printersdlgs.pp, er findet die Klasse TCUPSPrinter nicht. Ich denke es macht keinen Sinn, die lcl so lange anzupassen, bis es geht, weil es ja eigentlich durchlaufen sollte. Sind vielleicht Defines falsch gesetzt? Oder gibt es doch noch Reste auf der Festplatte von alten Versionen, auf die er zugreift?

Ich finde es recht problematisch, das neu Installieren scheint das Hauptproblem von Lazaurs zu sein. Bei Linux habe ich sogar ein neues Linux installiert, um weiterzukommen, weil das Updaten nicht geklappt hat. Nur unter Windows geht es relativ problemlos. In der Summe kann es eine Woche dauern, bis wieder alles läuft, nachdem ich ein Update gemacht habe (auf mehreren Plattformen). Unter Linux mußte ich bei jedem Update eine Menge path Angaben ergänzen, damit er alle Quelltexte findet (die der Editor meist problemlos aufruft).

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:Aber jetzt hänge ich im Bereich Printers4Lazarus, printersdlgs.pp, er findet die Klasse TCUPSPrinter nicht. Ich denke es macht keinen Sinn, die lcl so lange anzupassen, bis es geht, weil es ja eigentlich durchlaufen sollte. Sind vielleicht Defines falsch gesetzt? Oder gibt es doch noch Reste auf der Festplatte von alten Versionen, auf die er zugreift?

Es kann sein, dass TCUPSPrinter für Mac OS X nicht erstellt wird, habe aber keine konkrete Ahnung davon.
Martin V hat geschrieben:Ich finde es recht problematisch, das neu Installieren scheint das Hauptproblem von Lazaurs zu sein. Bei Linux habe ich sogar ein neues Linux installiert, um weiterzukommen, weil das Updaten nicht geklappt hat. Nur unter Windows geht es relativ problemlos. In der Summe kann es eine Woche dauern, bis wieder alles läuft, nachdem ich ein Update gemacht habe (auf mehreren Plattformen). Unter Linux mußte ich bei jedem Update eine Menge path Angaben ergänzen, damit er alle Quelltexte findet (die der Editor meist problemlos aufruft).
In einer idealen Welt sollten sich solche Probleme über bug reports lösen lassen ;-)

MiSchi
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Ich habe auch schon eifrig Fehler gemeldet, aber mir war klar bei der Menge und der Systematik der Fehler, dass mir einfach Informationen fehlen, wie die Hebel richtig zu bedienen sind.

Inzwischen kann ich Erfolg beim Compilieren vermelden. Das Hauptproblem war, dass wohl neuerdings die Druckfunktion nicht mehr standardmäßig über die Carbon Oberfläche, sondern über CUPS läuft. Das ist wohl eine unter Mac nachinstallierbare Linux-Druckroutine. Wenn man weiterhin die Carbon Druckfunktionalität möchte, dann muß man einen Compilerdefine setzen: -dNativePrint
Außerdem mußte ich noch extra -dCarbon setzen, weil er sonst auch an einer Stelle stolpert (obwohl Carbon eigentlich gesetzt sein müßte, das ist es auch überwiegend).

Was ich noch nicht ganz verstehe, ist dass ich diverse Lazarus Library Quellverzeichnisse unter Project Options - Path angeben muß, damit er seine eigene Library findet. Das ist nicht so schlimm, man muß es ja nur einmal richtig setzen und dann bei der nächsten Lazarus Version wieder etwas anpassen, aber komisch ist es trotzdem.

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:Das Hauptproblem war, dass wohl neuerdings die Druckfunktion nicht mehr standardmäßig über die Carbon Oberfläche, sondern über CUPS läuft. Das ist wohl eine unter Mac nachinstallierbare Linux-Druckroutine.

Der Erbsenzähler: CUPS ist eine Abkürzung für Common Unix Printing System, ist also nicht nur für linux, sondern allgemeiner für alle Unixoide. Apple verwendet es seit 2002, hat 2007 die Rechte am source code erworben und den Chefentwickler eingestellt. Also nix nachinstalliertes, sondern seit 20002 der Standard. Ob die Übernahme durch Apple im Endeffekt für andere Unixoide gut oder schlecht war, kann ich nicht wirklich beurteilen, aber die schlimmsten Befürchtungen sind wohl nicht eingetroffen.

Ich würde carbon-printing vermeiden. Wird es im aktuellen OS X überhaupt noch unterstützt?

MiSchi.
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Ich habe ein MacOS 10.6. Warum hat er den CUPS Code dann nicht compiliert? Kann das sein, dass seit 2.4.0 ein Fehler enthalten ist, den noch niemand gemeldet hat und momentan Lazarus-Programme unter MacOS gar nicht compilierbar sind? Ob es doch an etwas anderem liegt? Vielleicht doch irgendwelche alten Quelltexte von einer vorherigen Installation, die nicht überschrieben wurden?

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:Ich habe ein MacOS 10.6. Warum hat er den CUPS Code dann nicht compiliert? Kann das sein, dass seit 2.4.0 ein Fehler enthalten ist, den noch niemand gemeldet hat und momentan Lazarus-Programme unter MacOS gar nicht compilierbar sind? Ob es doch an etwas anderem liegt? Vielleicht doch irgendwelche alten Quelltexte von einer vorherigen Installation, die nicht überschrieben wurden?

Keine Ahnung. Vielleicht hat einfach niemand den CUPS code auf Mac OS X ausprobiert.
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Dann würde es mich interessieren, ob jemand mit Lazarus 1.4.0 oder 1.4.2 unter MacOS ein Programm mit Druckroutine schon compiliert hat und ob es bei ihm gegangen ist - wie gesagt es geht nur um das Compilieren, nicht um das Drucken. Wenn es bei ihm auch nicht geht, dann würde ich den Fehler offiziell melden. Kein Compiler-Define -nativeprint, sondern der standardmäßige CUPS Code.

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Ich habe nun mit dem Compilier-Problem des Drucken-Quelltextes wieder weitergemacht und habe festgestellt, dass, obwohl ich den Compiler-Define "NativePrint" (unter Compiler options - other) nicht gesetzt habe, er den Bereich IFNDEF NativePrint ausgraut und auch der Compiler entsprechend diesen Bereich nicht compiliert. (Das ist die erste Frage.) Ich habe dann die entsprechenden Codestellen auskommentiert, so dass er das compiliert, was er eigentlich bei ausgeschaltetem "NativePrint" compilieren müßte. Doch das Compilieren endet am Schluß beim Linken mit der Fehlermeldung "Library not found for -lcairo". Weiß jemand Rat?

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:Ich habe nun mit dem Compilier-Problem des Drucken-Quelltextes wieder weitergemacht und habe festgestellt, dass, obwohl ich den Compiler-Define "NativePrint" (unter Compiler options - other) nicht gesetzt habe, er den Bereich IFNDEF NativePrint ausgraut und auch der Compiler entsprechend diesen Bereich nicht compiliert. (Das ist die erste Frage.) Ich habe dann die entsprechenden Codestellen auskommentiert, so dass er das compiliert, was er eigentlich bei ausgeschaltetem "NativePrint" compilieren müßte. Doch das Compilieren endet am Schluß beim Linken mit der Fehlermeldung "Library not found for -lcairo". Weiß jemand Rat?

Der Fehler heisst, dass die Library libcairo.dylib nicht gefunden wird. Ich habe gerade unter 10.10 nachgeschaut. Ist auch nicht vorhanden. Muss du also nachinstallieren, am besten mit einem der Paketmanager (Fink, MacPorts, Homebrew), weil die eventuell benötigte Abhängigkeiten auch gleich mit installieren. Ob die Bibliothek dann auch gefunden wird und es dann geht, musst du sehen.

Michael.
MiSchi macht die fink-Pakete

Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

Re: MacOS: compiler: cannot find...

Beitrag von Martin V »

Danke für den Hinweis. Inzwischen habe ich Fink installiert und dann Cairo. Die libcairo.dylib liegt nun im Verzeichnis /usr/X11/lib. Der Compiler meldet aber immer noch "library not found for -lcairo". Fehlt da nach der Installation noch ein Schritt? Vielleicht eine Umgebungsvariable?

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: MacOS: compiler: cannot find...

Beitrag von mischi »

Martin V hat geschrieben:Danke für den Hinweis. Inzwischen habe ich Fink installiert und dann Cairo. Die libcairo.dylib liegt nun im Verzeichnis /usr/X11/lib. Der Compiler meldet aber immer noch "library not found for -lcairo". Fehlt da nach der Installation noch ein Schritt? Vielleicht eine Umgebungsvariable?

oh oh. libcairo in /usr/X11/lib ist nicht von fink, sondern durch Xorg. Den Pfad zu Bibliotheken kann man mit der Option -Fl an fpc weitergeben. Der reicht das dann an der linker weiter. Probier mal ob -Fl/usr/X11/lib funktioniert. Cairo aus fink sollte mit -Fl/sw/lib gefunden werden.

MiSchi
MiSchi macht die fink-Pakete

Antworten