64Bit Anwendungen

Für Fragen rund um die Ide und zum Debugger
Antworten
manuel774
Beiträge: 3
Registriert: Mo 12. Jan 2009, 11:59

64Bit Anwendungen

Beitrag von manuel774 »

Hey...
kann mir jemand sagen wie ich unter Lazarus eine 64Bit für Windows erstellen kann ?
Fertige und funktionierende 32Bit Anwendungen für Windows existieren schon und müssen daher eigentlich nur in nem anderen Mode kompiliert werden oder?

danke
greetz

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: 64Bit Anwendungen

Beitrag von Euklid »

Hallo manuel,
manuel774 hat geschrieben: Fertige und funktionierende 32Bit Anwendungen für Windows existieren schon und müssen daher eigentlich nur in nem anderen Mode kompiliert werden oder?
Im Prinzip ist das richtig. Auf die Weise lässt sich nach Installation der Crosscompile-Binärdateien von Windows x86 nach WinCE mit ARM Architektur, von Linux nach Windows u.s.w. kompilieren. Dazu genügt dann ein Umstellen der Target-CPU und des Widgetsets im Menü Projekt-->Compilereinstellungen.

Problem in deinem Fall: Meines Wissens gibt es noch keine fertig kompilierten Crosscompile-Binärdateien für Windows 32bit-CPU nach Windows 64bit-CPU. D.h. um hier Crosscompile benutzen zu können, müsstest du selbst die dafür notwendigen Anpassungen durchführen (binutils, Lazarus-Component-Library, u.s.w. muss alles für 64bit kompiliert werden), was auch gehen sollte aber wahrscheinlich etwas aufwendiger ist.

Daher würde ich bei dem momentanen Entwicklungsstand auf die Frage
kann mir jemand sagen wie ich unter Lazarus eine 64Bit für Windows erstellen kann ?
antworten: Am Einfachsten ist es, wenn du dir die 64-bit-Version von Lazarus parallel installierst und dir dein Projekt dort für 64bit kompilierst.
http://sourceforge.net/project/showfile ... _id=251158" onclick="window.open(this.href);return false;

Viele Grüße, Euklid

manuel774
Beiträge: 3
Registriert: Mo 12. Jan 2009, 11:59

Re: 64Bit Anwendungen

Beitrag von manuel774 »

Hey,
danke für die schnelle Antwort,
Problem ist nur das ich ein 32Bit System habe und beim Versuch zu installieren bekomm ich folgende Fehlermeldung:

Datei kann nicht ausgeführt werden:
c:\lazarus\fpc\2.2.2\bin\x86_64-win64\fpcmkcfg.exe

CreateProcess schlug fehl; Code 193.
%1 ist keine gültige System 32 Datei.

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: 64Bit Anwendungen

Beitrag von Hitman »

Was ja auch logisch ist, wenn du kein 64bit System hast ;-)
Warum willst du eigentlich überhaupt deine Anwendung für 64bit kompilieren? Braucht die wirklich soviel RAM?

manuel774
Beiträge: 3
Registriert: Mo 12. Jan 2009, 11:59

Re: 64Bit Anwendungen

Beitrag von manuel774 »

Ne also die laufen ja auch auf 32Bit Systemen...
Aber ich mache im moment mein Anerkennungspraktikum in ner Softwarefirma und die denken sich so Sachen aus...
Weil der Praktikant muss ja auch mal was selber rausbekommen ;)

Also ich wäre total froh wenn das klappt...

Greetz

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

Re: 64Bit Anwendungen

Beitrag von theo »

Wie Euklid schon sagte: Am einfachsten ist es 64bit Lazarus auf einem 64bit Windows zu installieren.
Ansonsten musst du dir die Umgebung selber einrichten. Viel Glück.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: 64Bit Anwendungen

Beitrag von Euklid »

manuel774 hat geschrieben:Ne also die laufen ja auch auf 32Bit Systemen...
... wie Hitman schon andeutet: 64bit benötigt man vor allem, wenn die Anwendung mehr als ca. 3,6 GB RAM benötigt.

32bit-Programme laufen sowohl auf 32bit-Systemem als auch auf 64bit-Systemen (bzw. AMD64).
64bit-Programme laufen nur auf 64bit-Systemen.

Hades32
Beiträge: 4
Registriert: Mi 28. Okt 2009, 11:04

Re: 64Bit Anwendungen

Beitrag von Hades32 »

Hy!

hat sich hier in der zwischenzeit etwas getan? Zwei Lazarus zu installieren ist schon irgendwie doof...

EDIT: Hab's gerade probiert beides gleichzeitig zu installieren.. Das geht ja garnicht! Lazarus verwendet das gleiche Profil und alles ist im ......... :(

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: 64Bit Anwendungen

Beitrag von monta »

Es geht, du musst den Parameter --pcp=... mit übergeben, als Startskript, Verknüpfung o.ä. Damit legst du das Primädre Konfigurationsverzeichnis fest.

siehe bspw:
http://www.lazarusforum.de/viewtopic.php?p=32720#p32720" onclick="window.open(this.href);return false;

Allerdings brauchst du auch nicht zwei Lazarus, sondern letztlich nur zusätzlich den Crosscompiler für 64 Bit.
das bisschen FPC was du dazu zusätzlich installieren musst, ist hier zu finden:
http://freepascal.org/down/i386/win32-f ... al.org.var" onclick="window.open(this.href);return false;

Anschließend musst du unter Lazarus erstellen, die LCL für die Ziel-CPU x86_64 neu erstellen lassen.

Danach kannst du in den Projekteinstellungen unter Quelltext die Ziel-CPU-Familie auf x86_64 einstellen und beim kompilieren solltest du eine fertige 64Bit-Anwendung erhalten.
Johannes

Hades32
Beiträge: 4
Registriert: Mi 28. Okt 2009, 11:04

Re: 64Bit Anwendungen

Beitrag von Hades32 »

Danke für die schnelle Antwort.

Allerdings weiß ich nicht genau, wie ich das jetzt machen soll. Ich habe die Lazarus 64Bit Version installiert. Klappt das von da auch mit dem CrossCompiler oder MUSS ich die 32Bt Version von Lazarus verwenden?

Weil jetzt kann ich unter dem Punkt "Lazarus compilieren" immer nur win32/64 auswählen. Nie eines allein. Werden dann immer gleich zwei EXEs erzeugt, oder muss ich das in den Projektoptionen ändern?

Schonmal Danke!

(Eigentlich komisch, dass das nicht schon integriert ist. Schließlich gibt es noch so viele die 32Bt haben...)

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: 64Bit Anwendungen

Beitrag von monta »

Also win32/64 ist die Grafikoberfläche, und die ist immer gleich, kannst du also so lassen.

Was wichtig ist ist das Feld Zielprozessor. (Du musst dafür auf "Erweiterte Compilereinstellungen2 wechseln, um das Feld unten zu haben sehe ich gerade, hatte ich vergessen, zu erwähnen)

Ich bin jetzt etwas überfragt, wenn du schon die 64Bit-Version hast.
Meine Vorgehensweise bezog sich eigentlich darauf, ein 32Bit-Lazarus samt FPc zu haben und auf 64Bit cross zu compilieren. Da brauchst du ja aber dann einen Cross von 64 zu 32 was es nicht als Installationpaket gibt.
Lazarus brauchts definitiv nur eines. Die Frage ist, ob der FPC 32Bit schon bei 64Bit-Paketen drin ist oder nicht. Da ich nur 64Bit hab, kann ich nicht nachschauen.

Probier mal, bei Zielprozessor I386 anzugeben und die LCL zu erstellen.
Johannes

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: 64Bit Anwendungen

Beitrag von Targion »

Irgendwie sinnlos von 32bit -> 64bit zu kompilieren. Umgekehrt ist das garkein problem, aber so wie du es versuchst (der 64bit-Compiler funktioniert nicht auf 32bit-Windows) wird es IMHO nicht funktionieren. (probier's trotzdem mal - Crosskompilieren ist nicht mein Spezialgebiet)
Am besten du installierst dir ein 64bit-Betriebssystem.

Hades32
Beiträge: 4
Registriert: Mi 28. Okt 2009, 11:04

Re: 64Bit Anwendungen

Beitrag von Hades32 »

Also das mit der 64Bit Version hat nicht geklappt. Jetzt habe ich die 32Bit Version installiert, und den 32-64bit cross-compiler in das selbe Verzeichnis wie der von Lazarus mitgelieferte (...\kazarus\fpc\2.2.4) installiert.

Wenn ich jetzt hier x86_64 einstelle geht es nicht. Die entsprechende ComboBox enthält auch gar keine auswahlmöglichkeiten...?

Bild

Das ist der Fehler:
Bild

Hades32
Beiträge: 4
Registriert: Mi 28. Okt 2009, 11:04

Re: 64Bit Anwendungen

Beitrag von Hades32 »

Achso, funktioniert eigentlich das debugging dann unter beiden Plattformen? Sonst versuch ich es doch mit der " --pcp=..." variante...

EDIT: Ok, so funktionierts. Trotzdem Danke! Ich hoffe irgendwann wird das mal einfacher gehen...

Antworten