Entwickler-Ecke
Programmierwerkzeuge - 64Bit Compiler für Delphi 10.1 Starter (32Bit)?
galagher - Mi 31.05.17 20:26
Titel: 64Bit Compiler für Delphi 10.1 Starter (32Bit)?
Hallo!
Ich kann mit meinem Delphi 10.1 ausschliesslich 32Bit-Programme kompilieren. Da frage ich mich doch, ob es nicht einen 64Bit-Compiler dafür gibt, möglichst Freeware.
Muss doch möglich sein: Während des Programmierens verwende ich einfach den integrierten Delphi-Compiler, und wenn alles fertig ist, mache ich dann eine 64Bit-exe-Datei daraus.
Oder ist das doch nicht so einfach?
Delete - Mi 31.05.17 23:56
- Nachträglich durch die Entwickler-Ecke gelöscht -
Delphi-Laie - Do 01.06.17 00:44
Frühlingsrolle hat folgendes geschrieben : |
Wenn es kostenlos sein soll, ist Lazarus dein Fall. Die kostenlose Entwicklungsumgebung kann 32 und 64bit Anwendungen erzeugen.
Nach Lazarus umzustellen, bedarf etwas an Arbeit. PAS Dateien lassen sich 1:1 übertragen, nicht aber die Projektdateien.
D.h. das Design musst du dort nachbauen, die Logik kannst du aber übernehmen. |
Deine Kompetenz und Hilfsbereitschaft in allen Ehren, Frühlingsrolle, für diese bin ich auch heute noch dankbar, aber hier muß ich ganz massiv widersprechen.
Lazarus - oder eben FPC - ist kein Delphi-Clone hinsichtlich der Syntax, dem Delphi nur sehr/ziemlich ähnlich. Auch der Delphimodus in FPC / Lazarus kann das nicht grundsätzlich ändern, auch wenn er die Delphikompatibilität natürlich spürbar erhöht (wäre auch traurig, wenn nicht).
Ich ließ mich - neugierigerweise und experimental - dreimal, bei meinen drei größten Projekten, auf dieses Wagnis ein. Herausgekommen sind - wie hätte es auch anders kommen können -
jedesmal separate Lazarus-Projekte, es ging einfach nicht anders. Das eine ist mein "berühmtes" Sortierkino, das andere mein Programm "Prozesse" (zu finden unter dem Suchwort "Prozeßbetrachter"). Das dritte expliziere ich lieber nicht, es war ein Programm, das einen globalen Hook verwandte.
Als Hobby-/Freizeit-/Amateurprogrammierer, das muß ich hier mal heraushängen lassen, schreibe ich ganz gewiß nicht auf hohem Niveau. Generics kenne ich z.B. nur als Wort, nie benötigt. Mit etwas Mühe habe ich mir bisher
einmal eine eigene simple Klasse zusammengebastelt, weil ich ohne einfach nicht mehr auskam.
Kurzum und dennoch, man möge also bei einem oder beiden der genannten Projekte einfach die Delphi-Unit-Quelltexte in die Lazarus-Unit-Quelltexte hineinkopieren. Viel Spaß bei bzw. mit "etwas Arbeit"! Aber nein, es wird ja gar keine Arbeit geben, denn diese lassen sich ja (angeblich) 1:1 übernehmen.
Anderes Beispiel: Ich schlug Michael Puff alias Luckie einstmals vor, seinen "XP Usermanager" nach Lazarus zu portieren, um diesen für 64 Bit "flottzumachen". Anscheinend konnte ich sein Interesse wecken. Delphi mit 64 Bit, also mindestens XE 2, gab es nach meiner Erinnerung nämlich damals noch nicht - ganz im Gegensatz zu Lazarus, was hier die Nase vorn hatte (eine Peinlichkeit, die mich heute noch befremdet). Kurzum, als ich bald bei ihm nachfragte / nachhakte, meinte er, daß der Wust an Änderungen, den er auf sich zukommen sah, ihn recht bald zum Aufgeben bewog.
Delete - Do 01.06.17 02:06
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke - Do 01.06.17 02:44
Da es bei 64 Bit ja fast nur um Treiber, Dienste und andere nicht visuelle Programme geht, sollte es nicht so schwer sein mit Lazarus / FPC kompatibel zu bleiben.
Aber es ist schon richtig, dass einige IFDEFs nötig sein könnten...
Bisher hatte ich nur einmal das Vergnügen alten Delphi Code nach Lazarus zu portieren. Unser Lizenzdienst lief als 32bit Version nicht rund unter 64bit Windows und Delphi konnte noch kein 64bit. Das war alter Code, ohne Generics usw., weshalb das ganze recht schnell erledigt war was die reine Portierung angeht.
Das größte Problem war ein Bug, weshalb schlicht der Dienst unter Lazarus nicht gestartet werden konnte. Der war im Repository schon behoben, aber noch nicht im Release drin wie ich nach tagelanger Suche (der Lazarus Debugger ist schrecklich im Vergleich zu Delphi) festgestellt habe.
Frühlingsrolle hat folgendes geschrieben : |
Es gibt ein paar Schlagwörter/keywords die nur Lazarus kennt, die eben zur Funktion neuer Features wie eben für z.B. Generics beitragen:
Delphi-Quelltext 1: 2: 3: 4:
| type generic TGenClass<T> = class end; | |
Diese Syntax für Generics finde ich z.B. schrecklich und unnötig.
Frühlingsrolle hat folgendes geschrieben : |
Es gab Anpassungen, die vorgenommen werden mussten:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| {$IFDEF FPC} FHWndProc := LCLIntf.AllocateHWnd(WndProc); {$ELSE} {$IFDEF DELPHI6_UP} FHWndProc := Classes.AllocateHWnd(WndProc); {$ELSE} FHWndProc := Forms.AllocateHWnd(WndProc); {$ENDIF} {$ENDIF} |
|
Warum nicht einfach:
Delphi-Quelltext
1:
| FHWndProc := AllocateHWnd(WndProc); |
Delete - Do 01.06.17 02:58
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke - Do 01.06.17 03:13
Wird denn die Unit Forms in der uses Klausel bei neueren Delphiversionen und Lazarus benötigt? (Ich habe mir deine Komponente nicht angeschaut.)
Wenn ja, bliebe noch die Auslagerung des Codes in eine separate Unit. Das fände ich immer noch besser als die IFDEFs.
Delete - Do 01.06.17 03:30
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke - Do 01.06.17 10:29
Frühlingsrolle hat folgendes geschrieben : |
Wenn dich die Komponente interessiert, überflieg sie mal schnell. Verbessrungsvorschläge sollten im dafür vorgesehen Topic geschildert werden. ;) |
Erledigt. ;-)
Delphi-Laie - Do 01.06.17 10:39
Frühlingsrolle hat folgendes geschrieben : |
Ich empfand's nicht so schlimm. |
Nein, ist es auch nicht. Und es ist das Recht der Lazarus-/Freepascalprogrammierer, ihrem Compiler einen eigenen Dialekt zu spendieren.
Nur raubt einem das Zeit, und wenn man die Ursache für die Inkompatibiltät nicht kennt - die Stelle natürlich sehr wohl - muß man ihr auf den Grund gehen, und das kann manchmal fast unendlich viel Zeit benötigen.
galagher - Do 01.06.17 12:45
Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben!
Ralf Jansen - Do 01.06.17 15:02
Zitat: |
Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben! |
Doch natürlich. Liegt den kostenpflichtigen Version von Delphi bei. Wenn es denn auch über andere günstige/kostenlose Wege gäbe sollte Embarcadero nochmal über seinen Zuschnitt der kostenlosen Version nachdenken und die Lücke schließen.
jaenicke - Do 01.06.17 15:49
Aber ganz ehrlich: Das wäre so ziemlich das letzte Feature, das mir als wichtig für die Starter Edition einfallen würde...
Ich bin mir sehr sicher, dass es das weder offiziell kostenlos in absehbarer Zeit geben wird noch jemand sich die Mühe macht kostenlos (!) so etwas zu entwickeln...
Denn FPC gibt es ja...
galagher - Do 01.06.17 19:57
Ralf Jansen hat folgendes geschrieben : |
Liegt den kostenpflichtigen Version von Delphi bei. |
:D
Ich dachte, so etwas gibt's eventuell von Drittherstellern! Habe natürlich schon gegoogelt - Fehlanzeige. Also habe ich eben hier gefragt!
jaenicke hat folgendes geschrieben : |
Aber ganz ehrlich: Das wäre so ziemlich das letzte Feature, das mir als wichtig für die Starter Edition einfallen würde... |
Aber 64Bit ist
die Zukunft schon Standard, also, es als das letzte Feature zu bezeichnen...
jaenicke hat folgendes geschrieben : |
Denn FPC gibt es ja... |
Free Pascal Compiler - 32Bit, ja.
galagher - Do 01.06.17 21:30
Ralf Jansen hat folgendes geschrieben : |
Zitat: | Einen 64Bit-Kommandozeilen-Compiler, zB. als Befehlszeilentool, gibt es also wirklich nicht? Kaum zu glauben! |
Doch natürlich. Liegt den kostenpflichtigen Version von Delphi bei. |
Gibt es sie nun nur zusammen mit Delphi, ...
... oder doch auch extra, also nicht von Delphi?
jaenicke - Do 01.06.17 22:39
Free Pascal hat mit Delphi nicht viel zu tun, das gibt es nur separat. Lazarus nutzt z.B. Free Pascal.
Du könntest das durchaus über das Menü Tools in Delphi extern aufrufen, wenn du das wie beschrieben dafür mit pflegst.
galagher hat folgendes geschrieben : |
Aber 64Bit ist die Zukunft schon Standard, also, es als das letzte Feature zu bezeichnen... |
Nur weil die CPU 64 Bit Architektur nutzt, muss man ja nicht auch die Programme als 64 Bit Programm nutzen. Dadurch steigt z.B. der Speicherverbrauch, aber große Vorteile hat man bei 99% der Programme nicht.
Wir liefern aktuell ausschließlich unsere Dienste und unsere großen Anwendungsserver als 64 Bit Programme aus. Die verbrauchen aber auch durchaus mal 20 GiB RAM... das geht nicht unter 32 Bit.
Alles andere sind 32 Bit Programme.
galagher - Fr 02.06.17 18:50
jaenicke hat folgendes geschrieben : |
Free Pascal hat mit Delphi nicht viel zu tun, das gibt es nur separat. Lazarus nutzt z.B. Free Pascal.
Du könntest das durchaus über das Menü Tools in Delphi extern aufrufen, wenn du das wie beschrieben dafür mit pflegst. |
Kannst du mir sagen, welchen ich downloaden soll? Ich bin etwas konfus hier:
https://www.freepascal.org/down/x86_64/win64.var
Ist der Compiler dann auch gleich der Linker oder benötige ich diesen extra?
Delete - Fr 02.06.17 21:10
- Nachträglich durch die Entwickler-Ecke gelöscht -
galagher - Sa 03.06.17 08:56
Ich muss also zuerst Lazarus installieren. Doch nicht so einfach, wie ich dachte. Hatte gehofft, solche Compiler als einzelnes Tool gibt's, nun, vielleicht nicht gerade zu Hauf, aber eben doch!
jaenicke - Sa 03.06.17 15:05
Gibt es, bringt dir aber nicht viel... Willst du wirklich ohne IDE ein Projekt erstellen, den Quelltext umstellen und evtl. sogar ein ganzes Formular ohne Designer entwerfen, falls da eins drin ist?
Das wäre schon sehr mühsam und aufwendig...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!