Lazarus erzeugt immer 32 Bit App auf macOS

Für Fragen rund um die Ide und zum Debugger
Antworten
harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

Habe Lazarus 2.04 auf macOS Mojave installiert.

Habe in den Projekteinstellungen als Widget Cocoa and als CPU-Target x86_64 gewählt.

Dennoch erzeugt Lazarus immer eine 32-Bit-Anwendung.

Was mache ich falsch?

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von ErnstVolker »

Hallo,

ich denke es liegt daran, dass die IDE für'n Mac auch nur 32 bit ist.

Gruß

Volker

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von ErnstVolker »

Hallo,

Mac OS Catalina startet keine 32 bit Programme mehr. Das wurde mit Mojave schon angekündigt.

Gruß

Volker
Zuletzt geändert von ErnstVolker am Di 15. Okt 2019, 14:21, insgesamt 1-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von mschnell »

Ich habe gelesen, dass die nächste Mac OS Version keine 32 Bit Programme mehr starten kann.
Außerdem muss jedes Programm von Apple zertifiziert werden (es gibt aber anscheinend Möglichkeiten Programme und Link-Libraries einzeln als Ausnahme zu definieren...)
-Michael

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

Wie bereits erwähnt, habe ich Lazazus auf Mojave installiert, da laufen noch 32-bit-Programme (sonst würde da Lazarus ja auch schon nicht mehr laufen).

Ich würde aber gerne eine 64-Bit-Version meines Programms erzeugen.

Carbon kann das ja wohl nicht, daher habe ich als Widget Cocoa gewählt.

Aber auch da (oder mit irgendeinem anderen Widget) wird immer eine 32-Bit App erstellt.

Muss man außer bei CPU-Typ noch etwas einstellen, damit ich eine 64-Bit App erhalte?

Ich dachte, Lazarus kann das...

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von Warf »

Nö, du machst das schon richtig, damit sollte es 64 bit kompilieren.
Habs grad selbst getestet, selbes problem, anscheinend wird keine 64 bit anwendung erstellt.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von mschnell »

harrybonn hat geschrieben:Muss man außer bei CPU-Typ noch etwas einstellen, damit ich eine 64-Bit App erhalte?

Project -> Project Properties -> Compiler Options -> Config and Target -> Target Platform -> Target CPU family (-P) => x86_64 sollte eigentlich reichen.
-Michael

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

mschnell hat geschrieben:
harrybonn hat geschrieben:Muss man außer bei CPU-Typ noch etwas einstellen, damit ich eine 64-Bit App erhalte?

Project -> Project Properties -> Compiler Options -> Config and Target -> Target Platform -> Target CPU family (-P) => x86_64 sollte eigentlich reichen.
-Michael


Ja, genauso habe ich es ja gemacht, es wird aber immer eine 32-Bit-App erstellt.

Leider kann ich damit mit der aktuellen macOS Catalina nichts anfangen...

Hat denn noch nie jemand eine 64-Bit App für macOS mit Lazarus erstellt?

Bug???

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von Warf »

harrybonn hat geschrieben:Hat denn noch nie jemand eine 64-Bit App für macOS mit Lazarus erstellt?

Bug???


Vor ewigkeiten mal (locker so 3 Jahre her, wahrscheinlich mehr), Cocoa ist unbenutzbar, wenn man mit Lazarus auf dem Mac irgendwas machen will, muss man eigentlich auf 32 bit zurückgreifen. Ich glaub das es damals mal funktioniert hatte, das war aber einige Major OSX und FPC versionen her.

Ist aber ein lazarus bug, ich benutz den fpc noch regelmäßig für kommandozeilenanwendungen, und da der FPC unter osx standardmäßig 64 bit kompiliert, erstellt der mir ohne zusätzliche argumente immer 64 bit anwendungen. Also das simple programm:

Code: Alles auswählen

program Test;
{$MODE OBJFPC}{$H+}
begin
  WriteLn(SizeOf(IntPtr));
end.

kompiliert mit

Code: Alles auswählen

$> fpc ./test.pas

wirft eine größe von 8 (und damit 64 bit) zurück.

Würde also schätzen das muss ein Bug in Lazarus sein.

PS: vergiss es, hab grad nochmal nachgesehen, aus irgendeinem grund war bei mir in den Pfaden (Lazarus->EInstellungen->Pfade) für den fpc der /usr/local/bin/ppc386 und nicht /usr/local/bin/fpc eingetragen. Dann ist natürlich klar das der immer 32 bit baut. Keine ahnung ob ich das per hand so konfiguriert hab oder es seit der Installation so ist. Wie gesagt ich benutze Lazarus unter OSX nicht mehr. Wenn ich ne pascal anwendung schreib dann meist mit VIM oder Spacemacs. Wenn du garantieren willst das 64 bit verwendet werden, kannst du als pfad auch einfach /usr/local/bin/ppcx86 angeben, aber wunder dich dann nicht wenn er das nächste mal keine 32 bit anwendungen mehr baut (genau dafür gibts ja die fpc exec, damit man aussuchen kann für was man bauen will)

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von kupferstecher »

Also gehen muss es irgendwie.

https://wiki.lazarus.freepascal.org/Coc ... #Compiling
"In the past, for some reason Lazarus kept setting the compiler to "/usr/local/bin/ppc386" - which results in 32 bit apps. Make sure under Tools->Options that "Compiler Executable" is set to "/usr/local/bin/fpc" to get 64 bit apps."

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

kupferstecher hat geschrieben:Also gehen muss es irgendwie.

https://wiki.lazarus.freepascal.org/Coc ... #Compiling
"In the past, for some reason Lazarus kept setting the compiler to "/usr/local/bin/ppc386" - which results in 32 bit apps. Make sure under Tools->Options that "Compiler Executable" is set to "/usr/local/bin/fpc" to get 64 bit apps."


Dank an Warf und Kuperstecher, ja genau, das war es. Mit der Änderung auf fpc wird dann auch eine 64-Bit Anwendung erzeugt...

Den Debugger habe ich zwar immer noch nicht ans Laufen bekommen (bzw. er stürzt sofort ab, trotz der sehr guten Anleitung hier: https://www.youtube.com/watch?v=QE_IAjkXElg&t=456s), aber immerhin kann ich schon mal compilieren....

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von Warf »

harrybonn hat geschrieben:Den Debugger habe ich zwar immer noch nicht ans Laufen bekommen (bzw. er stürzt sofort ab, trotz der sehr guten Anleitung hier: https://www.youtube.com/watch?v=QE_IAjkXElg&t=456s), aber immerhin kann ich schon mal compilieren....


Die anleitung ist ja auch für El-Capitan, da ging das ja auch einfach. Seit Mojave hab ich den GDB nicht mehr zum laufen bekommen (und nach der anzahl der ungelösten StackOverflow threads ist das anscheinend ein allgemeines problem), obwohl es eigentlich auch gehen sollte.
Ich hab es hier schon öfter gesagt, und kann es immer nur wiederholen, Lazarus und OSX verträgt sich nicht sonderlich gut. Du solltest dir selbst einen gefallen tun und auf deinem Mac einfach eine Linux VM installieren, in der du dann Lazarus benutzt. Du kannst zwar theoretisch am ende die Programme mit Lazarus (oder lazbuild) unter Mac kompilieren, aber auch das funktioniert eher mäh wenn du die LCL benutzt. Ansonsten kannst du auch einfach über das Kommandozeileninterface vom LLDB versuchen zu debuggen, wenn du unbedingt auf OSX bleiben willst, aber wie gesagt, ich würde dir von OSX und Lazarus generell abraten

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

Warf hat geschrieben:Ich hab es hier schon öfter gesagt, und kann es immer nur wiederholen, Lazarus und OSX verträgt sich nicht sonderlich gut. Du solltest dir selbst einen gefallen tun und auf deinem Mac einfach eine Linux VM installieren, in der du dann Lazarus benutzt. Du kannst zwar theoretisch am ende die Programme mit Lazarus (oder lazbuild) unter Mac kompilieren, aber auch das funktioniert eher mäh wenn du die LCL benutzt. Ansonsten kannst du auch einfach über das Kommandozeileninterface vom LLDB versuchen zu debuggen, wenn du unbedingt auf OSX bleiben willst, aber wie gesagt, ich würde dir von OSX und Lazarus generell abraten


Von mir aus ist das nicht unbedingt ein Wunsch, das von macOS aus zu machen, ging bislang davon aus, es geht nicht anders.

harrybonn
Beiträge: 101
Registriert: Fr 7. Jan 2011, 15:18

Re: Lazarus erzeugt immer 32 Bit App auf macOS

Beitrag von harrybonn »

Hier noch eine ergänzende Info zum Debuggen unter macOS:

Noch nie war als einfacher als jetzt: nur unter Werkzeuge, Einstellungen, Debugger den "LLDB debugger (with fpddebug)" wählen und den Pfad auf /usr/bin/lldb ändern und schon kann man mit Lazarus unter macOS (hier: mojave) debuggen!

Sehr schön!!

Antworten