Tragbare Windows-Programmdatei, Linux-Äquivalent

672
Ursescu Ionut

Vor kurzem habe ich mit Unity 3d ein einfaches Spiel erstellt und festgestellt, dass es auf jedem Windows-Rechner funktioniert, indem es nur die Dateien und ausführbaren Dateien kopiert.

Ich habe mich gefragt, wie man das machen kann, denn ich habe gelesen, dass man ein kompiliertes Programm nicht portabel machen kann. Aufgrund der Systemarchitektur, Windows-Version ... Sie müssen für jede Maschine kompilieren.

Ich habe mich auch gefragt, ob es so etwas für Linux-Maschinen gibt.

Und wenn mir jemand erklären kann, was passiert, wenn ein Spiel installiert wird (was macht das Programm, wenn Kompilierung vorliegt oder nur Dateien kopiert, Pfade gesetzt und auf Abhängigkeiten geprüft werden)

0
Sie müssen für verschiedene CPU-Architekturen kompilieren, Windows ist jedoch ziemlich kreuzkompatibel. In den meisten Fällen müssen Sie sich nur um die Erstellung einer x86- oder x64-Version kümmern, und x86 funktioniert normalerweise in beiden Fällen. Jonno vor 7 Jahren 2
Was meinst du portabel? Wie .paf-Dateien, wie sie die PortableApps.com-Software verwendet? Oder .exe-Dateien, für die keine Administratorrechte erforderlich sind und nicht viele Daten speichern? Es gibt viele Definitionen und Varianten von tragbarer Software InterLinked vor 7 Jahren 0
EXE-Dateien, die unabhängig von der Windows-Version ausgeführt werden können Ursescu Ionut vor 7 Jahren 0

1 Antwort auf die Frage

2
theJack

Sie haben recht, ein Programm muss für jede spezifische Architektur und jedes Betriebssystem kompiliert werden. Kompilierte Programme können nicht zwischen Architekturen oder Betriebssystemen übertragen werden.

Fast jeder Computer ist entweder eine 32-Bit-x86-Architektur oder eine 64-Bit-x86_64-Architektur (die mit x86 kompatibel ist). Außerdem sind alle Windows-Versionen nach und einschließlich XP größtenteils kompatibel, da sie alle auf demselben Kernel basieren. Dies ermöglicht, dass ein für x86_64 und Windws kompiliertes Programm auf einer beliebigen 64-Bit-Windows-Maschine ausgeführt wird und ein Programm, das für x86-Fenster kompiliert wurde, um auf praktisch allen Windows-Computern ausgeführt zu werden. Dies setzt natürlich voraus, dass alle richtigen DLLs vorhanden sind.

Gleiches gilt für Linux, da alle Linux-Versionen kompatibel sein sollten.

Beim Installieren eines Spiels werden die Spieldateien und Bibliotheken normalerweise nur in ein bestimmtes Verzeichnis kopiert. Manchmal werden einige Variablen festgelegt, die auch für das Spiel erforderlich sind. Das Installationsprogramm kompiliert die Quelle vor der Installation so gut wie nie, obwohl einige Programme (normalerweise für Linux) so verteilt werden, dass der Benutzer sich vor der Installation selbst kompilieren muss.

Das Problem ist, dass unter Linux eine Vielzahl von installierten Bibliotheken vorhanden ist, einschließlich Bibliotheken, die nicht statisch verknüpft werden können, da sie sich von System zu System unterscheiden. Das macht es viel schwieriger, Linux-Programme bereitzustellen, die "einfach funktionieren". Einige Leute und Unternehmen versuchen es, aber es wird immer noch auf ungewöhnlicheren Linux-Systemen fehlschlagen. dirkt vor 7 Jahren 0