64-bit -> 32-bit

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

64-bit -> 32-bit

Beitrag von paulderfinne »

Hallo liebe Lazaruser,

ich habe nun vor, meine 32-bit-Kiste aufzurüsten und habe eine 64-Bit CPU gekauft. Ist es ohne weiteres möglich ein mit einem 64-Bit Lazarus ein Programm zu kompilieren, das auf einem 32-Bit Rechner läuft? (Alles nur Linux)

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: 64-bit -> 32-bit

Beitrag von Epcop »

1. Ich weiß gar nicht, ob man mit einem 64-Bit Lazarus ein 32 Bit Programmm compilieren kann. Ich weiß nicht wie/wo das gehen sollte. Meines Wissen geht nur 32 Bit Lazarus => 32 Bit Programm. 64 Bit Lazarus => 64 Bit Programm


2. Ist es kaum möglich ein 64 Bit Programm auf ein 32 Bit System zu starten (wohl aber umgekehrt).

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

Re: 64-bit -> 32-bit

Beitrag von paulderfinne »

Das kling nun nicht sehr ermutigend. Kann ich denn auf meinem 64-bit pc mit einem debian amd-64 ein 32-bit compiler nebeneinander laufen lassen?

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: 64-bit -> 32-bit

Beitrag von Mathias »

Ist es ohne weiteres möglich ein mit einem 64-Bit Lazarus ein Programm zu kompilieren, das auf einem 32-Bit Rechner läuft? (Alles nur Linux)

Mit einem Cross-Compiler ist dies möglich. Ich habe gerade folgendes kompiliert:

Code: Alles auswählen

 var
  p : Pointer;
begin
   Memo1.Lines.Add('Pointersize: ' + IntToStr(SizeOf(p)));

Diese Zeile spuckt eine 4 aus. Bei einem 64Bit Programm wären es 8.

Wen du einen Crosscompilier erstellen willst, dann nimm am besten fpcupdelux.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: 64-bit -> 32-bit

Beitrag von Mathias »

Kann ich denn auf meinem 64-bit pc mit einem debian amd-64 ein 32-bit compiler nebeneinander laufen lassen?

Theoretisch ja, aber ob dies mit den Paket quellen geht, kann ich nicht sagen. ich würde die fpcupdelux-Version vorziehen. So nebenbei kannst sogar Windows-Programme erzeugen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

Re: 64-bit -> 32-bit

Beitrag von paulderfinne »

Danke Mathias für deine Anregungen mit dem fpcupdelux. Ist das aufwändig? Wo bekomme ich das Ding her? Im debian-Repository gibt es das Ding nicht.
P.S. Mit windows kann ich aber gar nichts anfangen. Hatte mal windows 98 in den Händen. Fand das grässlich.

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

Re: 64-bit -> 32-bit

Beitrag von paulderfinne »

OK. Ich habe es nun gegoogelt und es gibt auch eine Lazarus-Anleitung. Ich hoffe ich komme damit zurecht.
http://wiki.freepascal.org/fpcupdeluxe

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

Re: 64-bit -> 32-bit

Beitrag von paulderfinne »

Und ich hätte da noch eine Frage. Funktionieren die zeos-libraries genauso auf 64.bit?

TraumTaenzerDieter
Beiträge: 28
Registriert: So 14. Aug 2011, 09:11

Re: 64-bit -> 32-bit

Beitrag von TraumTaenzerDieter »

Ja, Zeos funktioniert unter 64bit genauso wie unter 32bit.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: 64-bit -> 32-bit

Beitrag von MacWomble »

Epcop hat geschrieben:1. Ich weiß gar nicht, ob man mit einem 64-Bit Lazarus ein 32 Bit Programmm compilieren kann. Ich weiß nicht wie/wo das gehen sollte. Meines Wissen geht nur 32 Bit Lazarus => 32 Bit Programm. 64 Bit Lazarus => 64 Bit Programm.


Bei Codetyphoon ist das kein Problem. Es kommt mit über 50 Toolchains für alle möglichen Crosscompiler-Aufgaben.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

paulderfinne
Beiträge: 65
Registriert: Mi 27. Feb 2013, 18:24
OS, Lazarus, FPC: Linux (L 0.9.30.4-1.1 FPC 2.6.0)
CPU-Target: 32Bit

Re: 64-bit -> 32-bit

Beitrag von paulderfinne »

Hier :
http://wiki.lazarus.freepascal.org/Cross_compiling

steht:
From Linux x64 to Linux i386

Chances are that your 64 bit linux distrubution is already capable of compiling 32 bit programs but due to the way the fpc build process is designed there are a couple of things you might have to do.

Wie verträgt sich das ,mit euren Antworten oben?

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: 64-bit -> 32-bit

Beitrag von mischi »

paulderfinne hat geschrieben:Hier :
http://wiki.lazarus.freepascal.org/Cross_compiling

steht:
From Linux x64 to Linux i386

Chances are that your 64 bit linux distrubution is already capable of compiling 32 bit programs but due to the way the fpc build process is designed there are a couple of things you might have to do.

Wie verträgt sich das ,mit euren Antworten oben?

Damit das geht, müssen zwei Vorraussetzungen erfüllt sein. 1) Der Freepascal compiler für 32 bit muss installiert sein. Ist das der Fall, dann können Programme erstellt werden, die nur die Bibliotheksroutinen von FreePascal verwenden. Ob das geht, kann man einfach mit dem Befehl "fpc -Pi386" oder "ppc386" überprüfen. 2) Programme, die mit Lazarus erstellt wurden, verwenden in den allermeisten Fällen Routinen der Lazarus-Component-Library (lcl) für die grafischen Elemente (Buttons, ...). Auf Linux greifen diese Routinen auf GTK-Routinen zu. Deshalb braucht man für diese Programme die entsprechenden GTK-Bibliotheken auch in 32bit.

Ich hoffe, das hilft weiter - MiSchi
Zuletzt geändert von mischi am Mi 22. Nov 2017, 17:10, insgesamt 1-mal geändert.
MiSchi macht die fink-Pakete

Benutzeravatar
gladio
Beiträge: 217
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: 64-bit -> 32-bit

Beitrag von gladio »

mal aus Neugier:

Wenn man auf einem 32-Bit-System eine Anwendung für 64-Bit erstellt, mit welchem Werkzeug auch immer,
statet diese 64-Bit-Anwendung auch auf dem 32-Bit-Sytem in der IDE?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: 64-bit -> 32-bit

Beitrag von Socke »

gladio hat geschrieben:mal aus Neugier:

Wenn man auf einem 32-Bit-System eine Anwendung für 64-Bit erstellt, mit welchem Werkzeug auch immer,
statet diese 64-Bit-Anwendung auch auf dem 32-Bit-Sytem in der IDE?

Nein. Bei x86_64-Systemen startet der Prozessor erst im 32-Bit-Modus und wird vom Betriebssystem dann sehr früh in den 64-Bit-Modus umgeschaltet. Für 32-Bit-Programme wird der Prozessor dann kurzzeitig zurückgeschaltet.
Im laufenden Betrieb kann der Prozessor aber nicht mehr von 32 auf 64 Bit umgeschaltet werden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: 64-bit -> 32-bit

Beitrag von Epcop »

paulderfinne hat geschrieben:Kann ich denn auf meinem 64-bit pc mit einem debian amd-64 ein 32-bit compiler nebeneinander laufen lassen?


Mit zwei Compiler unter einer Lazarusinstallation, habe ich keine guten Erfahrungen gemacht.

Was aber wohl geht, sind zwei Lazarusinstallationen nebeneinander. Meines Wissen kann man (muss man) das bei der Installation angeben. Erfahrungen habe ich damit aber nicht gemacht. Denke aber, die Idee mit zwei Lazarusinstallationen ist durchaus einen Versuch wert (vorher Backups machen ;-)).

Antworten