Typhon64 von Pilotlogic oder doch nicht?

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Sieben
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?

Beitrag von Sieben »

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).

wp_xyz
Beiträge: 4886
Registriert: Fr 8. Apr 2011, 09:01

Re: Typhon64 von Pilotlogic oder doch nicht?

Beitrag von wp_xyz »

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.

TSchnuckenbock
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?

Beitrag von TSchnuckenbock »

Ralf hat geschrieben:
Do 16. Dez 2021, 23:18
TSchnuckenbock hat geschrieben:
Do 16. Dez 2021, 19:10
Ich 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.
Hi, danke für den Tipp. Das werde ich dann mal so machen.... mal schauen was "fpcdeluxe" ist und dann einfach mal anfangen....
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
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.
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.

Ralf
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?

Beitrag von Ralf »

wp_xyz hat geschrieben:
Fr 17. Dez 2021, 00:04
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.
Das klingt für mich plausibel, dass es nicht wirklich so rund klappt mit der Cross-Entwicklung.

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

wp_xyz
Beiträge: 4886
Registriert: Fr 8. Apr 2011, 09:01

Re: Typhon64 von Pilotlogic oder doch nicht?

Beitrag von wp_xyz »

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.

DonAlfredo
Beiträge: 74
Registriert: Do 28. Sep 2017, 10:26

Re: Typhon64 von Pilotlogic oder doch nicht?

Beitrag von DonAlfredo »

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.

Warf
Beiträge: 1909
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Typhon64 von Pilotlogic oder doch nicht?

Beitrag von Warf »

wp_xyz hat geschrieben:
Fr 17. Dez 2021, 00:04
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.
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.
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

Antworten