Lazarus erzeugt immer 32 Bit App auf macOS

Für Fragen rund um die Ide und zum Debugger

Lazarus erzeugt immer 32 Bit App auf macOS

Beitragvon harrybonn » 14. Okt 2019, 20:46 Lazarus erzeugt immer 32 Bit App auf macOS

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?
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon ErnstVolker » 15. Okt 2019, 06:39 Re: Lazarus erzeugt immer 32 Bit App auf macOS

Hallo,

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

Gruß

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

Beitragvon ErnstVolker » 15. Okt 2019, 06:40 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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 15. Okt 2019, 13:21, insgesamt 1-mal geändert.
ErnstVolker
 
Beiträge: 235
Registriert: 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon mschnell » 15. Okt 2019, 08:27 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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
mschnell
 
Beiträge: 3390
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon harrybonn » 15. Okt 2019, 16:44 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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...
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon Warf » 15. Okt 2019, 17:28 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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.
Warf
 
Beiträge: 1330
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon mschnell » 16. Okt 2019, 12:27 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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
mschnell
 
Beiträge: 3390
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon harrybonn » 16. Okt 2019, 21:47 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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???
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon Warf » 16. Okt 2019, 22:52 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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)
Warf
 
Beiträge: 1330
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon kupferstecher » 17. Okt 2019, 09:44 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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."
kupferstecher
 
Beiträge: 236
Registriert: 17. Nov 2016, 11:52

Beitragvon harrybonn » 17. Okt 2019, 16:56 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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....
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon Warf » 17. Okt 2019, 17:52 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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
Warf
 
Beiträge: 1330
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: MacOS | Win 10 | Linux | 
CPU-Target: x86_64
Nach oben

Beitragvon harrybonn » 17. Okt 2019, 20:30 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon harrybonn » 23. Okt 2019, 15:50 Re: Lazarus erzeugt immer 32 Bit App auf macOS

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!!
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

• Themenende •

Zurück zu Benutzung der IDE



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried