Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Lazarus: Release Build für 64 bit kompilieren? (https://www.delphipraxis.net/151222-lazarus-release-build-fuer-64-bit-kompilieren.html)

Zacherl 9. Mai 2010 19:02


Lazarus: Release Build für 64 bit kompilieren?
 
Hey,

ich habe mir eben mal Lazarus runtergeladen, da ich plane ein Programm für 64 bit zu kompilieren. Jetzt finde ich beim besten Willen nicht die Option, mit der ich auf 64 bit Kompilate umschalten kann. :evil: Außerdem ist mir aufgefallen, dass selbst einfache Konsolenprogramme relativ groß sind (70KiB). Gibts da noch einen Trick, mit dem ich zwischen Debug und Release Build umschalten kann?

Viele Grüße
Zacherl

JamesTKirk 9. Mai 2010 19:19

Re: Lazarus: Release Build für 64 bit kompilieren?
 
Hi!

Zitat:

Zitat von Zacherl
ich habe mir eben mal Lazarus runtergeladen, da ich plane ein Programm für 64 bit zu kompilieren. Jetzt finde ich beim besten Willen nicht die Option, mit der ich auf 64 bit Kompilate umschalten kann. :evil:

Hast du dir die 64-Bit Variante runtergeladen oder die 32-Bit Variante? Bei ersterem musst du nichts umstellen, da 64-Bit dort die Standardeinstellung ist. Bei letzterem musst du dir entweder die 64-Bit Variante von Lazarus runterladen oder zumindest den 64-Bit Crosscompiler von Free Pascal (hier), diesen installieren, in Lazarus einrichten und die LCL neu kompilieren (falls du diesen zweiten Schritt wählst kann ich dir dann ausführlicher weiterhelfen, falls nötig).

Zitat:

Zitat von Zacherl
Außerdem ist mir aufgefallen, dass selbst einfache Konsolenprogramme relativ groß sind (70KiB). Gibts da noch einen Trick, mit dem ich zwischen Debug und Release Build umschalten kann?

1. FPC und vorallem Lazarus Programme sind grundsätzlich größer als äquivalente Delphi Programme, da Free Pascal und Lazarus ja entsprechend die Plattform abstrahieren.
2. Die Debuginfo kann in Lazarus über Projekt->Compilereinstellungen->Linken mit Hilfe von "Debuggersymbole aus der ausführbaren Datei entfernen" entweder ganz abgeschalten werden (kein Debuggen möglich) oder mit "Externe Datei mit gdb-Debugsymbolen nutzen" auf eine externe Datei umgeschalten werden (Debuggen weiterhin möglich).

Gruß,
Sven

Zacherl 9. Mai 2010 19:30

Re: Lazarus: Release Build für 64 bit kompilieren?
 
Ah tatsächlich die Kompilate sind bereits 64 bit :thumb: Die Debuginfos habe ich nach deiner Anleitung nun auch entfernen können.

Vielen Dank :)

JamesTKirk 9. Mai 2010 20:11

Re: Lazarus: Release Build für 64 bit kompilieren?
 
Immer wieder gern :)

Das nächste Mal eine Frage zur Lazarus IDE aber bitte in der passenden Sparte "Free Pascal / Lazarus IDE" posten und nicht in "Delphi IDE" :mrgreen:

Gruß,
Sven

DP-Maintenance 9. Mai 2010 20:27

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Die Delphi-IDE" nach "FreePascal / Lazarus IDE" verschoben.
Dem ist nichts mehr hinzuzufügen. ;)

Zacherl 9. Mai 2010 21:42

Re: Lazarus: Release Build für 64 bit kompilieren?
 
Upsalla :mrgreen: Gar nicht gesehen, dass es für Lazarus ne extra Spalte gibt. :oops:

Qnkel 30. Okt 2010 08:23

AW: Lazarus: Release Build für 64 bit kompilieren?
 
Frage andersrum: Ich hab Lazarus mit 64bit, wo stell ich ein, dass er in 32bit kompilieren soll? Hab schon alles abgesucht, aber nichts gefunden.

Garfield 30. Okt 2010 11:22

AW: Lazarus: Release Build für 64 bit kompilieren?
 
Vielleicht hilft Dir das weiter:

http://www.lazarusforum.de/viewtopic.php?f=5&t=2346
http://wiki.lazarus.freepascal.org/Cross_compiling/de

Delphi-Laie 30. Okt 2010 11:43

AW: Re: Lazarus: Release Build für 64 bit kompilieren?
 
Zitat:

Zitat von Zacherl (Beitrag 1020214)
Ah tatsächlich die Kompilate sind bereits 64 bit

Nicht nur das: Die Qualität der 64-Bit-Compilate ist n.m.B. nicht schlechter als die der 32-Bit-Pendants (da hinkt also das eine dem anderen nicht wesentlich hinterher). Mit Lazarus zu programmieren, ist aus der Perspektive kommerzieller oder wenigstens professioneller Programmierumgebungen zwar kein Hochgenuß, aber man kann durchaus funktional zufriedenstellende Ergebnisse damit erzielen.

Schwedenbitter 23. Mai 2012 11:23

AW: Re: Lazarus: Release Build für 64 bit kompilieren?
 
Hallo,

Zitat:

Zitat von JamesTKirk (Beitrag 1020212)
32-Bit:
.. musst du dir entweder die 64-Bit Variante von Lazarus runterladen oder zumindest den 64-Bit Crosscompiler von Free Pascal (hier), diesen installieren, in Lazarus einrichten und die LCL neu kompilieren (falls du diesen zweiten Schritt wählst kann ich dir dann ausführlicher weiterhelfen, falls nötig).

auf dieses Angebot komme ich gern zurück.

Ich habe die obige Datei in der aktuellen Version installiert (habe den Link mal angepasst). Außerdem habe ich in der IDE gesehen, dass man über "Projekt", "Projekteinstellungen", "Compilereinstellungen" als Ausgabe "Win64" wählen kann. Es kommen dann aber diverse Fehlermeldungen, die ich jetzt nicht alle aufführen möchte.

Ich wüsste daher gern, wie man den 64bit fpc in Lazarus einrichtet und die LCL neu kompiliert.

Danke, Alex

JamesTKirk 23. Mai 2012 13:24

AW: Re: Lazarus: Release Build für 64 bit kompilieren?
 
Zitat:

Zitat von Schwedenbitter (Beitrag 1167699)
Hallo,

Zitat:

Zitat von JamesTKirk (Beitrag 1020212)
32-Bit:
.. musst du dir entweder die 64-Bit Variante von Lazarus runterladen oder zumindest den 64-Bit Crosscompiler von Free Pascal (hier), diesen installieren, in Lazarus einrichten und die LCL neu kompilieren (falls du diesen zweiten Schritt wählst kann ich dir dann ausführlicher weiterhelfen, falls nötig).

auf dieses Angebot komme ich gern zurück.

Ich habe die obige Datei in der aktuellen Version installiert (habe den Link mal angepasst). Außerdem habe ich in der IDE gesehen, dass man über "Projekt", "Projekteinstellungen", "Compilereinstellungen" als Ausgabe "Win64" wählen kann. Es kommen dann aber diverse Fehlermeldungen, die ich jetzt nicht alle aufführen möchte.

Ich wüsste daher gern, wie man den 64bit fpc in Lazarus einrichtet und die LCL neu kompiliert.

Danke, Alex

Ooookaaaaayyy.... dann wollen wir mal.

Du musst in der IDE unter "Einstellungen => Einstellungen => Umgebung => Dateien" bei Compilerdateiname die "fpc.exe" (samt Pfad) deiner x86_64 Installation angeben.

Dann: verwendest du Lazarus 0.9.30 oder eine neuere Version (0.9.31, 1.1)?

Falls ersteres: Gehe nach "Werkzeuge => "Lazarus kompilieren" einrichten" und wähle bei "Profil zum Kompilieren" den Eintrag "LCL neu kompilieren" aus. Zusätzlich änderst du bei "Package-Registrierung" den Radiobutton auf "Bauen" (das Zahnrad ohne Pinsel). Die "LCL-Schnittstelle" sollte auf "Win32/Win64" stehen. Bei "Zielsystem" wählst du "Win64" und bei "Ziel-CPU" "x86_64". Per "Neukompilieren" wird dann die LCL für Win64 gebaut.

Falls zweiteres, dann brauchst du hier nichts spezielles machen.

Nun öffnest du "Projekt => Projekteinstellungen => Codegenerierung" und stellst auch hier "Ziel-Betriebssystem" auf "Win64" und "Ziel-CPU-Familie" auf "x86_64".

Nun solltest du dein Projekt kompilieren können. Im Fall von Lazarus 0.9.31 und 1.1 wird die LCL nun automatisch für x86_64-win64 neu gebaut. Anschließend wird dann deine Anwendung kompiliert und gelinkt.

Eventuell könntst du jetzt noch mit dem Debugger Schwierigkeiten haben (keine Ahnung), weswegen du ihn für's erste unter "Einstellungen => Einstellungen => Debugger => Allgemein" deaktivieren solltest ("(none)" in der Combobox auswählen).

Ich hoffe das hilft dir schonmal weiter. Wenn nicht, dann meldest du dich einfach nochmal :)

Gruß,
Sven

Schwedenbitter 23. Mai 2012 18:11

AW: Lazarus: Release Build für 64 bit kompilieren?
 
Tausend Dank für die prompte Antwort! Ich muss Dich aber nochmal zügeln:

Zunächst einmal meine Frage, wohin muss ich den 64-Bit Crosscompiler installieren?
Ich habe an mehreren Stellen im Netz gelesen, dass manche es einfach über den 32bit-FPC im Pfad von Lazarus installiert haben. Das scheint mir aber keine so gute Idee, weil dann manche Dateien einfach überschrieben werden. Ich hatte es dann so versucht, bevor ich mich ans Forum/Dich wandte:
32 bit: ...\lazarus\fpc\2.6.0
64 bit: ...\lazarus\fpc\2.6.0_x_64

Wenn dieses "Problem" geklärt ist, werde ich dann Deine Anleitung mal nachvollziehen.

Gruß & Dank, Alex

Schwedenbitter 23. Mai 2012 22:50

AW: Lazarus: Release Build für 64 bit kompilieren?
 
Folgender kurzer Zwischenbericht:

Also der Installer für den Cross-Compiler legt zusätzliche Dateien an. Man kann (vermutlich muss) ihn daher im selben Verzeichnis wie FPC installieren. Es wird im Unterverzeichnis Units im Falle vom FPC für Windows 64bit ein weiteres Namens
Delphi-Quellcode:
x64_64-win64
angelegt.

Ich habe Lazarus heute runtergeladen. Da war die aktuelle, als stable bezeichnete Version die 0.9.30.4. Ich musste also das Prozedere durchziehen. Der Debugger läuft mit der so erzeugten 64bit-Version des Programmes nicht, was bei einem 32bit-System nicht verwunderlich ist. Gleiches gilt für strip.exe, um die Dateigröße auf ein erträgliches Maß zu bringen.
Leider kann ich auch erst morgen testen, ob die exe-Datei auf einem Windows 7 64bit läuft. Wenn dem so ist, bedanke ich mich schon einmal im voraus für die schnelle und sehr präzise Hilfe! :dp:

Gruß, Alex

JamesTKirk 24. Mai 2012 10:14

AW: Lazarus: Release Build für 64 bit kompilieren?
 
Zitat:

Zitat von Schwedenbitter (Beitrag 1167814)
Folgender kurzer Zwischenbericht:

Also der Installer für den Cross-Compiler legt zusätzliche Dateien an. Man kann (vermutlich muss) ihn daher im selben Verzeichnis wie FPC installieren. Es wird im Unterverzeichnis Units im Falle vom FPC für Windows 64bit ein weiteres Namens
Delphi-Quellcode:
x64_64-win64
angelegt.

Ja, dann kann er in das selbe Verzeichnis wie die 32-Bit Installation.

Zitat:

Zitat von Schwedenbitter
Ich habe Lazarus heute runtergeladen. Da war die aktuelle, als stable bezeichnete Version die 0.9.30.4. Ich musste also das Prozedere durchziehen. Der Debugger läuft mit der so erzeugten 64bit-Version des Programmes nicht, was bei einem 32bit-System nicht verwunderlich ist. Gleiches gilt für strip.exe, um die Dateigröße auf ein erträgliches Maß zu bringen.
Leider kann ich auch erst morgen testen, ob die exe-Datei auf einem Windows 7 64bit läuft. Wenn dem so ist, bedanke ich mich schon einmal im voraus für die schnelle und sehr präzise Hilfe!

Auf einem 32-Bit-System kannst du natürlich in der Tat keine 64-Bit Anwendung laufen lassen (Ausnahmen wie die Anwendungsvirtualisierung von QEMU unter Linux lasse ich mal außen vor). Was du aber machen kannst, um die Dateigröße zu verringern ist entweder ohne Debuginformationen zu kompilieren oder die Debuginformationen in einen eigene Datei auslagern lassen. Beides kannst du unter "Projekt => Projekteinstellungen => Linken" einstellen. Letzteres ist die Option "-Xg" und ersteres erreichst du, indem du alle Debugspezifischen Optionen abschaltest und zusätzlich die Option "-Xs" aktivierst.

Als kleiner Richtwert: Eine LCL-Anwendung mit einem leeren Formular hat ohne Debuginformationen circa 1,5 MB (viel mehr sollte auch strip.exe nicht schaffen).

Gruß,
Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz