Archiv verlassen und diese Seite im Standarddesign anzeigen : [Verständnisfrage] Warum .exe unter Linux nicht direkt ausführen?
Hallo!
Wenn ich ein Programm kompiliere, das keine dynamischen Bibliotheken benutzt, dann macht doch der Compiler einfach Maschinenbefehle für den jeweiligen Prozessor daraus, oder?
Meine Frage ist nun, warum kann ich unter Linux kompilierte Programme (z.B. "HelloWorld", also reine Konsolenprogs) dann nicht auch unter Windows ausführen und umgekehrt. Wo liegt konkret der Unterschied zwischen den Binärdateien?
MfG Xare
Du kannst auch ein für Windows kompiliertes Program nicht unter DOS ausführen.
Linux und Windows sind nunmal nicht binärkompatibel. Die Erklärung ist zwar recht laienhaft, aber vielleicht findet sich hier ja noch jemand, der/die das genauer erläutern kann.
Gruss
Marc
Der C Compiler spukt nur Linuxkompatible Programme aus.
Aber es gibt das hier: http://www.pro-linux.de/news/2002/4449.html Damit kann man dann einfache Programme unter Linux schrieben und compalieren und sie dann unter Windows laufen lassen.
Der Unterschied liegt in der unterschiedlichen Schnittstelle (API) zwischen Programm und Betriebssystemfunktionen. Da nimmst nur an, es würden keine Bibliotheken gelinkt. Tatsächlich werden aber Funktionen der Standardbibliotheken (z.B. C, C++, Mathematik, Standard Ein-/Ausgabe etc) verwendet, um ein einfaches "Hello World!" ausgeben zu können.
Zudem unterscheidet sich natürlich das EXE Format vom ELF Format.
thx für die Antworten.
@Belkira: Das wars, was ich eigentlich wissen wollte, konnte eigentlich auch selber draufkommen. :)
@all: Es geht mir ja gar nicht darum, irgendwie solche Programme zu schreiben, wollte das einfach nur mal verstanden haben.
Damit "closed" :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.