Typhon64 von Pilotlogic oder doch nicht?
-
- Beiträge: 202
- Registriert: Mo 24. Aug 2020, 14:16
- OS, Lazarus, FPC: Ubuntu Xenial 32, Lazarus 2.2.0, FPC 3.2.2
- CPU-Target: i386
Re: Typhon64 von Pilotlogic oder doch nicht?
Bezüglich Cross-Compiling fand ich diesen Wiki-Artikel hilfreich, dort wird eher die Entwicklung auf Linux empfohlen, wenn man sowohl Linux als auch Windows bedienen will (siehe 3.2.1).
Re: Typhon64 von Pilotlogic oder doch nicht?
Hier wird immer das Cross-Compiling so betont, als ob es das non-plus-ultra wäre. Ich finde, die Möglichkeit auf einem Betriebssystem für ein anderes ein Binary erzeugen zu können, ist zwar toll, aber trotzdem nur die halbe Geschichte. In dem im vorigen Beitrag zitierten wiki-Artikel heißt es: "Obviously, you cannot 'run' that binary but if one is made, its almost certainly OK." - ich würde im Gegenteil sagen, dass das erzeugte Cross-Compilat mit hoher Wahrscheinlichkeit NICHT ok ist. Ein Großteil der Arbeit ist das Testen, und da braucht man doch wieder die Zielplattform. Und dann kann man sich das Cross-compiling auch sparen, und gleich auf der Zielplattform kompilieren.
Cross-Compiling mache ich nur, wenn's nicht anders geht, etwa für Arduino oder einmal WinCE. Ansonsten habe ich diverse virtuelle Maschinen, auf denen ich das Projekt direkt kompiliere, teste und anpasse.
Cross-Compiling mache ich nur, wenn's nicht anders geht, etwa für Arduino oder einmal WinCE. Ansonsten habe ich diverse virtuelle Maschinen, auf denen ich das Projekt direkt kompiliere, teste und anpasse.
-
- Beiträge: 72
- Registriert: Do 20. Jul 2017, 23:47
- OS, Lazarus, FPC: Win7 und Win10
- CPU-Target: xxBit
- Wohnort: Südheide (Schnuckenland)
Re: Typhon64 von Pilotlogic oder doch nicht?
Ich bin in der Windows-Welt unterwegs, sowohl privat wie auch beruflich. Linux steht seit Jahrzehnten auf der ToDo-Liste. Immer mal wieder lege ich mir eine Linux-Installation in einer VM an, um Linux mehr kennenzulernen und dann komme ich wieder Monate nicht dazu, mich damit zu beschäftigen.Ralf hat geschrieben: ↑Do 16. Dez 2021, 23:18Hi, danke für den Tipp. Das werde ich dann mal so machen.... mal schauen was "fpcdeluxe" ist und dann einfach mal anfangen....TSchnuckenbock hat geschrieben: ↑Do 16. Dez 2021, 19:10Ich habe mir mit fpcdeluxe Lazarus mehrfach installiert (alle auf Win10 bzw früher Win7).
[...]
Also mein Rat wäre: Nimm Lazarus und lies dich in das Thema "Mehrfachinstallationen" und den Umgang mit fpcdeluxe ein.
Hast Du Dich wegen der besseren/einfacheren Cross-Kompatibilität für Windows als Host-Plattform entschieden, oder schlicht einfach weil Du eben auf der Windows-Welt Zuhause bist?
Ich habe beides und würde mich für das diesbezüglich vorteilhaftere OS entscheiden wollen (benutze beruflich Windows, privat seit über 10 Jahren hauptsächlich Linux), wenn es da überhaupt "das bessere" gibt.
VG,
Ralf
Wenn du in der Linux-Welt zuhause sein solltest, dann beachte, daß eventuell die Lazarus- bzw FreePascal-Pakete in den Distibutionen nicht immer auf dem neuesten Stand sind. Ich meine sowas in den letzten Jahren immer mal wieder in den Foren gelesen zu haben.
Ich denke auch auf Linux könnte fpcdeluxe das Mittel der Wahl sein, um sich seine Lazarus-Installation zusammenzustellen.
Würde ich sowohl für Windows wie auch Linux mit Lazarus Software entwickeln, dann würde ich de Entwicklung immer auf dem entsprechenden System machen. Z.B zuerst unter Windows entwickeln, dann die Quelltexte des Projekts rüber auf's Linux-System schubsen und dann mit dem dortigen Lazarus komplieren und wenn der Stand auf beiden Systemen läuft, dann wieder ein Sync zum Windowssystem und da weitermachen. Ich denke mit der Zeit kriegt man raus, wo die Knackpunkte bzgl. der beiden Systeme sind (Filehandling könnte ich mir z.B. vorstellen, daß man da sein Projekt an die verschiedenen Platformen anpassen muß).
Wie wp_xyz bereits geschrieben hat, Crosscompiling würde ich zwischen Windows und Linux also auch nicht nutzen.
-
- Beiträge: 65
- Registriert: Mi 29. Jan 2014, 18:31
- OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
- CPU-Target: 64Bit
Re: Typhon64 von Pilotlogic oder doch nicht?
Das klingt für mich plausibel, dass es nicht wirklich so rund klappt mit der Cross-Entwicklung.wp_xyz hat geschrieben: ↑Fr 17. Dez 2021, 00:04Hier wird immer das Cross-Compiling so betont, als ob es das non-plus-ultra wäre. Ich finde, die Möglichkeit auf einem Betriebssystem für ein anderes ein Binary erzeugen zu können, ist zwar toll, aber trotzdem nur die halbe Geschichte. In dem im vorigen Beitrag zitierten wiki-Artikel heißt es: "Obviously, you cannot 'run' that binary but if one is made, its almost certainly OK." - ich würde im Gegenteil sagen, dass das erzeugte Cross-Compilat mit hoher Wahrscheinlichkeit NICHT ok ist. Ein Großteil der Arbeit ist das Testen, und da braucht man doch wieder die Zielplattform. Und dann kann man sich das Cross-compiling auch sparen, und gleich auf der Zielplattform kompilieren.
Cross-Compiling mache ich nur, wenn's nicht anders geht, etwa für Arduino oder einmal WinCE. Ansonsten habe ich diverse virtuelle Maschinen, auf denen ich das Projekt direkt kompiliere, teste und anpasse.
Ich gehe davon aus, dass Du jedoch nur einen Source Code benutzt und ihn lediglich auf den unterschiedlichen Zielen compilierst / Linkst?
Das würde mir glaube ich auch reichen, wenn ich nur einen Projektordner (z. B. auf einem Server oder VirtualBox-Host PC) verwalten/pflegen brauche.
Wenn ich also auf meinem Linux-Host mit VirtualBox eine Windows VM mit Lazarus und eine VM mit Linux und Lazarus erstelle und dann die Sourcen auf einem gemeinsamen Ort (Server / NAS / etc.) ablege. Kann ich mir das so vorstellen? Oder ist es doch schon noch komplexer, was ich im Vorfeld berücksichtigen muss?
Muss ich dann die Verzeichnissstruktur dafür speziell so anlegen, dass es für mehrere Zielplattformen passt oder kopierst Du den Staff dann immer gekapselt exklusiv auf das jeweilige Zielsystem mit dem jeweiligen Lazarus?
VG,
Ralf
Kubuntu 20.04 LTS
Re: Typhon64 von Pilotlogic oder doch nicht?
Die großen Projekte liegen auf einer Quelltext-Verwaltung im Internet (github, sourceforge), das Hauptentwicklungssystem und die Entwicklungssysteme in den VMs holen sich von dort die Quellen und schreiben dorthin zurück. Für die kleineren Aktivitäten (Tests für Bugtracker, oder Demos fürs Forum) benutze ich den gemeinsamen Ordner, den VirtualBox einrichten kann, so dass ich sowohl von Windows als auch von Linux auf dieselben Dateien zugreifen kann. Klappt nur bei macOS nicht, wahrscheinlich weil eine mac-VM auf einem Windows-Host offiziell gar nicht unterstützt wird.
-
- Beiträge: 74
- Registriert: Do 28. Sep 2017, 10:26
Re: Typhon64 von Pilotlogic oder doch nicht?
As maintainer of fpcupdeluxe, I could not do this without cross-compiling. Some testing is always needed on the platform itself. But once the wrinkles are ironed out, cross-compiling is very effective. Look at all the binaries of fpcupdeluxe, it would be a very time-consuming effort without crossing.
And, once again, all up-binaries are made on a single Win10 ! Thanks to the (cross-)quality and features of FPC and Lazarus ! It's an amazing feat.
And, once again, all up-binaries are made on a single Win10 ! Thanks to the (cross-)quality and features of FPC and Lazarus ! It's an amazing feat.
-
- Beiträge: 1910
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Typhon64 von Pilotlogic oder doch nicht?
Kommt auf die Änderung an. Wenn du ein bereits schon sehr gut funktionierendes grundgerüst hast und dann was an der Logik änderst, also an komponenten die nicht direkt mit dem System oder GUI interagieren (z.b. wenn du bei einer client-server andwendung das top-level protokoll anpasst um z.B. einen neuen datentypen zu unterstützen) dann kann davon ausgegangen werden das das auf anderen systemen (zumindest der gleichen CPU architektur) gleich abläuft.wp_xyz hat geschrieben: ↑Fr 17. Dez 2021, 00:04ich würde im Gegenteil sagen, dass das erzeugte Cross-Compilat mit hoher Wahrscheinlichkeit NICHT ok ist. Ein Großteil der Arbeit ist das Testen, und da braucht man doch wieder die Zielplattform. Und dann kann man sich das Cross-compiling auch sparen, und gleich auf der Zielplattform kompilieren.
Bei der GUI entwicklung oder der implementation gegen system APIs gebe ich dir vollkommen recht. Z.B. wenn etwas auf berkley sockets unter Linux läuft, heist das noch lange nicht das es auch auf winsockets oder berkley sockets auf macOS läuft. Das gesagt, das ist ja meist nur am anfang des Projektzykluses der hauptfokus, wenn das grundgerüst steht ist ja sehr vieles am code meist algorithmischer natur. Und dann jede einzelne Änderung doppelt und Dreifach auf allen systemen zu testen ist nicht unbedingt Zielführend