Windows 7 x64 32-Bit Lazarus kompilieren

Für Installationen unter Windows
Antworten
TheSaint
Beiträge: 4
Registriert: Do 24. Jun 2010, 10:16

Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von TheSaint »

Hallo,

ich habe Lazarus für x64 unter Windows 7 x64 installiert. Hat alles gut geklappt und ich kann 64 Bit-Anwendungen kompilieren. Nun möchte ich gerne auch 32-Bit Anwendungen erstellen können.
Irgendwie komme ich mit dem kompilieren für die Cross Plattform nicht klar. Ich habe mir die FPC Sourcen heruntergeladen (ftp://ftp.freepascal.org/pub/fpc/dist/2 ... source.zip) und diese entpackt. Wenn ich das richtig verstanden haben, muss ich nun mit make die sourcen für x32 kompilieren. So richtig: make all install OS_TARGET=win32 CPU_TARGET=i386 INSTALL_PREFIX=C:\lazarus\fpc\2.2.4
Da habe ich das erste Problem. Ich weiß nicht, wo ich das make.exe hernehmen soll. Im Verzeichniss C:\lazarus\fpc\2.2.4\bin\x86_64-win64 habe ich eine make.exe. Ist die richtig?! Gebe ich nur make im entpackten fpc-2.2.4.source Ordner an, verwendet er make von Inprise und das ist ja das falsch.
Kann mir jemand erklären, wie ich das machen muss?

Vielen Dank
Sascha

Socke
Lazarusforum e. V.
Beiträge: 2714
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: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von Socke »

Vielleicht solltest du darüber nachdenken auf FreePascal Version 2.4.0 zu updaten; das ist die aktuell neuste stabile Version.

Zu deinem Problem:
Wenn du mehrere make von verschiedenen Herstellern hast, musst du dafür sorgen, dass das richtige ausgeführt wird. Wichtig ist, dass dieses mit GNU make kompatibel ist; du kannst also das von Lazarus verwenden.

Code: Alles auswählen

C:\lazarus\fpc\2.2.4\bin\x86_64-win64\make.exe all install [usw. die anderen Parameter]

Alternativ kannst du auch deine Umgebungsvariable PATH verändern, sodass das Lazarus-make zuerst gefunden wird. Dann kann es aber sein, dass andere Anwendungen (die das Inprise make erwarten) nicht mehr richtig funktionieren.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

TheSaint
Beiträge: 4
Registriert: Do 24. Jun 2010, 10:16

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von TheSaint »

Danke für die Antwort. Das updaten auf 2.4.0 werde ich mal machen.

Ich habe das mit dem make versucht. Es wurde auch einiges kompiliert, aber dann mit einem Fehler abgebrochen:

Code: Alles auswählen

C:/lazarus/fpc/2.2.4/bin/x86_64-win64/gmkdir.exe -p i386/units/x86_64-win64
C:/Daten/DL/Lazarus/fpc-2.2.4.source/fpc-2.2.4/compiler/ppc.exe -Ur -Xs -O2 -n -
Fui386 -Fusystems -FuC:/Daten/DL/Lazarus/fpc-2.2.4.source/fpc-2.2.4/rtl/units/x8
6_64-win64 -Fii386 -FE. -FUi386/units/x86_64-win64 -dRELEASE  -di386 -dGDB -dBRO
WSERLOG -Fux86 pp.pas
fpcdefs.inc(96,2) Error: User defined: Cross-compiling from non-i386 to i386 is
not yet supported at this time
fpcdefs.inc(96,2) Error: User defined: Cross-compiling from non-i386 to i386 is
not yet supported at this time
fpcdefs.inc(96,2) Error: User defined: Cross-compiling from non-i386 to i386 is
not yet supported at this time
cutils.pas(148,1) Fatal: There were 3 errors compiling module, stopping
Fatal: Compilation aborted
make.exe[3]: *** [ppcross386.exe] Error 1
make.exe[3]: Leaving directory `C:/Daten/DL/Lazarus/fpc-2.2.4.source/fpc-2.2.4/c
ompiler'
make.exe[2]: *** [cycle] Error 2
make.exe[2]: Leaving directory `C:/Daten/DL/Lazarus/fpc-2.2.4.source/fpc-2.2.4/c
ompiler'
make.exe[1]: *** [compiler_cycle] Error 2
make.exe[1]: Leaving directory `C:/Daten/DL/Lazarus/fpc-2.2.4.source/fpc-2.2.4'
C:\lazarus\fpc\2.2.4\bin\x86_64-win64\make.exe: *** [build-stamp.i386-win32] Err
or 2


Hast du eine Idee was das sein könnte?

Socke
Lazarusforum e. V.
Beiträge: 2714
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: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von Socke »

Die Datei cutils.pas bindet die Datei fpcdefs.inc ein (so wie wahrscheinlich viele andere auch). Bei dem Versuch diese zu übersetzen, wird in Zeile 96 (Buchstabe 2) ein benutzerdefinierter Fehler (Error) ausgelöst. Die Meldung

Code: Alles auswählen

fpcdefs.inc(96,2) Error: User defined: Cross-compiling from non-i386 to i386 is not yet supported at this time
interpretiere ich so, dass crosscompiling auf i386 bei dir nicht möglich ist.
Ich habe in meinen Quellen der Version 2.4.0 diese Zeilen aber nicht gefunden; vielleicht hast du hier mehr Erfolg.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

edewolf78
Beiträge: 12
Registriert: Mo 23. Nov 2009, 18:42
OS, Lazarus, FPC: Win (L 0.9.29 FPC 2.4.0)
CPU-Target: x32/x64
Wohnort: Ludwigsburg

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von edewolf78 »

Hallo Sascha,
ich habe es so gelöst und bei mir funktionierts:
ich habe mir beide Pakete geholt, d.h Lazarus für Win x64 und für Win x32, dann habe ich Lazarus für Win x32 installiert und danach Lazarus für Win x64 (mit dem gleichen Zielverzeichnis) es werden für beide Ziele eigene Unterverzeichnisse eingerichtet "i386-win32" und "x86_64-win64". Um das Ziel dann auszuwählen muss man in Lazarus unter "Projekt->Compilereinstellung->Quelltext"
Zielbetriebssystem "Win64"/i386" und die entsprechende Ziel-CPU-Familie "x86_64"/"i386" UND unter "Einstellungen"
die Pfade bei "Compilerdateiname : ...\fpc\2.4.0\bin\x86_64-win64\fpc.exe" / "....\fpc\2.4.0\bin\i386-win32\fpc.exe" und zu dem entsprechendem make "Pfad zum Make-Programm: ...\fpc\2.4.0\bin\x86_64-win64\make.exe" / "....\fpc\2.4.0\bin\i386-win32\make.exe". Beim Umschalten des Ziels kommt es zu Fehlermeldungen, die aber ignoriert werden können.Wichtig : die Einstellungen müssen zueinander passen, sonst gibt es tausende Fehler! So wie ich die Doku verstanden habe, kann der Win x64 Compiler und make nur für Ziel Win x64 und der Win x32 nur für Ziel x32 verwendet werden. Ob ich das alles richtig verstanden und eingerichtet habe, weiss ich nicht - bei mir funktioniert es af jeden Fall so.

ich habe Lazarus 0.9.29 + fpc 2.4.0 für Win x64 und Win x32


Gruss Edwin

TheSaint
Beiträge: 4
Registriert: Do 24. Jun 2010, 10:16

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von TheSaint »

Hallo,

erstmal Danke für die vielen Antworten.
Ich habe jetzt erstmal alles wieder deinstalliert und dann noch mal neu installiert. Erst x32 dann x64 mit FPC 2.4.0. Die Einstellungen wie Edewolf beschrieben habe ich vorgenommen und ich kann auch erfolgreich kompilieren. Anhand der Einstellungen kompiliert Lazarus entweder win32 oder win64. Leider habe ich noch ein Problem mit dem debuggen. Eine normale Windows Form Anwendung kann ich nicht über Lazarus starten(F9). Es wird zwar kompiliert: Projekt "project1" erfolgreich kompiliert. :) aber die Form wird nicht richtig geladen. Im Taskmanager sehe ich zwar project1.exe, jedoch sonst nichts. Stoppen beendet dann die Ausführung. Hat jemand eine Idee, was das noch sein kann?

Danke
Sascha

theo
Beiträge: 8294
Registriert: Mo 11. Sep 2006, 19:01

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von theo »

Auch wenn der Debugger ausgeschaltet ist?

TheSaint
Beiträge: 4
Registriert: Do 24. Jun 2010, 10:16

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von TheSaint »

Debugger auf "none" gestellt, dann ist die Form sichtbar.

Foxi1896
Beiträge: 87
Registriert: Mo 10. Jun 2013, 09:06

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von Foxi1896 »

Hallo zusammen,

habe das gleich Problem möchte meine x64 version auf x32 umkompilieren.
Aber wo ich das jetzt von edewolf versuche hört bei mir schon am Anfang auf wo finde ich bei Comiliereinstellung den Quelltext?
Und da die Beträge schon 3 Jahre her sind wollte ich fragen ob es in der Zeit eine einfachere Methode gbit?

Gruß
Foxi

alex1972
Beiträge: 1
Registriert: Do 18. Jul 2013, 08:23

Re: Windows 7 x64 32-Bit Lazarus kompilieren

Beitrag von alex1972 »

Ja, das würde mich auch interessieren! Bild Bild Bild

Antworten