Wie kann ich ein Programm für jedermann kompilierbar machen?

Für Fragen von Einsteigern und Programmieranfängern...
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: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Hitman »

RSE hat geschrieben:Also wenn dein "Jedermann" mit Sicherheit Linux hat, dann sehe ich dein Problem nicht. Soweit ich weiß, können 64-Bit Betriebssysteme auch 32-Bit Programme ausführen (das ist zumindest bei Windows so), nur umgekehrt natürlich nicht. Am Besten du sagst noch mal genau, auf welchen Systemen dein Programm nun alles laufen soll und wo du die Probleme siehst.


Naja, dummerweise braucht man dann aber auch die passenden 32bit Bibliotheken. Die will nicht jeder zusätzlich in seinem 64bit System rumschwirren haben.

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von RSE »

Hitman hat geschrieben:Naja, dummerweise braucht man dann aber auch die passenden 32bit Bibliotheken. Die will nicht jeder zusätzlich in seinem 64bit System rumschwirren haben.


Achso. Na dann muss er eben 2 Versionen beilegen. Ich bin mal gespannt, auf was für Systemen er nun seine Software tatsächlich alles laufen lassen will. Der Großteil der Beiträge in diesem Thread fragt nur nach mehr Infos von Alci :roll:
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von pluto »

Ich könnte mir eine Script Datei vorstellen, die dein Programm Automatisch für zwei Varianten Kompiliert : Einmal 32 Bit und einmal 64 Bit und eventuell auch noch für andere betriebsystem.
Weil nicht jeder kann ein Projekt Kompilieren. Ich habe bei manchen C++ Projekten Extreme sie zu Kompilieren, weil der Kompiliere X Fehler Meldungen schmeißt. Daher ist es wohl am einfachsten, wenn du bereist dein Projekt vorkompiliest und du könntest ja immer noch deine Source-Code Anbieten, für die Leute die es lieber Selbst Kompilieren wollen.

Ein Anders Problem ist ja nicht nur die LCL muss vorhanden sein auf dein Ziel System sondern auch alle anderen "Externen" Bibliotheken. Um Es einfacher zu machen: Nutzt am besten nicht die LCL. Dann wird es aber wieder Problematisch...
MFG
Michael Springwald

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: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Targion »

Bald gibt es was besseres für Linux: FatELF packt 64bit und 32bit ELFs in einer Datei zusammen. Biss die entsprechenden Patches im Kernel, Linker und diversen anderen Komponenten sind kann es aber noch dauern.

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von pluto »

und das wird auch von Windows unterstützt ?
MFG
Michael Springwald

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: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Targion »

Nein. Unter Windows muss man die Programme einzeln oder als .NET-Anwendungen abliefern. MacOS-X hat mit den "Universal-Binaries" etwas vergleichbares.
(Soviel allgemein zu portablen Anwendungen)

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

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von theo »

Targion hat geschrieben:Bald gibt es was besseres für Linux


Ob das wirklich so eine gute Sache ist?
Das Ganze ist ja nicht rückwärtskompatibel und bewirkt grössere Programmdateien.
Ich sehe den Vorteil nicht wirklich.

pluto
Lazarusforum e. V.
Beiträge: 7180
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von pluto »

und du hast alles Doppelt und Dreifach. Eigentlich ist die Idee ja so ähnlich wie C-Shape oder .Net oder ?
MFG
Michael Springwald

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von RSE »

pluto hat geschrieben:Eigentlich ist die Idee ja so ähnlich wie C-Shape oder .Net oder ?

C-Shape sagt mir zwar gar nix, aber .Net ist doch, wenn ich das richtig verstanden habe, eher ein Framework, das von allen hardwarespezifischen Sachen abstrahieren soll (eher mit Java vergleichbar) und ein .Net-Programm nur vorkompiliert für das Framework. Bei der Ausführung wird der Code dann eher interpretiert (von Interpreter) als ausgeführt (Im Sinne einer exe). Die universal binaries enthalten dagegen doppelten ausführbaren Code, ohne dass dafür ein Interpreter benötigt würde.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

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: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Targion »

.NET CLI-Code wird mit einem Just-in-time compiler kompiliert. (Wikipedia weiß mehr zum "Jittern") C# ist die Sprache von Microsaft für .NET und Mono. (Enthält elemente von Java, Delphi und C)
FatELF generiert wirklich relativ große binärdateien, der Nutzen der Sache liegt mehr beim Nutzer, der nicht mehr die richtige Datei für seine Plattform suchen muss. Die Sache ist Geschmackssache :-)

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

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von theo »

Targion hat geschrieben:der Nutzen der Sache liegt mehr beim Nutzer, der nicht mehr die richtige Datei für seine Plattform suchen muss.


Naja, aber gerade unter Linux benutzt man doch entweder einen Paketmanager oder man "maked" die Software gleich selber.
In beiden Fällen nützt "die Sache" ja nix.

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von RSE »

Achso, C-Sharp war gemeint... dass das so viel mit .Net zu tun hat, wusste ich auch noch nicht, sonst wär ich wohl doch drauf gekommen ;-)
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von af0815 »

Nachdem ich den Thread verfolgt habe, folgende Frage:

So das Programm für jeden verwendbar sein (ausführbarer Code) oder wirklich für jeden kompilierbar (nur Sourcen) ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Alci »

So nochmal zu Infos:
Ich habe programmiert und wollte halt einem Freund oder mehreren das Programm geben, dann soll er am besten mit Doppelklick das Programm öffnen können. Ich habe hier ein 32-bit System und der andere entweder 64-bit oder 32-bit, aber beide Ubuntu Linux. :)
Ich hatte nämlich bei meinem 64-bit System mal Probleme gehabt, andere konnten die kompilierte Datei nicht öffnen. :(

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: Wie kann ich ein Programm für jedermann kompilierbar machen?

Beitrag von Targion »

=> DEB-Paket packen
=> IPK-Setup erstellen (hähä... Diese Lösung (noch) nicht ganz so ernst nehmen)
=> Mittels ldd die Abhängigkeiten rausfinden und die nötigen Pakete manuell installieren.
64bit binaries laufen generell nicht auf 32bit-Systemen, umgekerhrt aber schon.

Antworten