stareagle: Visual C++: linux binary?

Beitrag lesen

Hallo,

sorry, falls das eine blöde Frage ist; aber mich würde brennend interessieren, ob man mit Visual C++ Projekte, die z.B. nur die Standardbibliotheken und gtk libs verwenden, "einfach so" für Linux kompilieren kann, damit es dort ausführbar ist?

Nein, das geht (leider) nicht. Windows und Linux verwenden ein unterschiedliches Binärformat für Programme (sprich die ausführbaren Dateien müssen anders aufgebaut sein). Siehe auch http://de.wikipedia.org/wiki/Executable_and_Linking_Format

Das hätte den Vorteil, dass nicht wieder die vielen vielen Parameter für gcc zusammengesammelt werden müssten und ich jedesmal alles auch mit dem 2. Compiler testen muss, obwohl ich vom einen weiß, dass es ohne großes Zutun schon klappt.

Der umgekehrte Weg geht aber: Du kannst deine Windowsprogramme auch mit dem gcc kompilieren. Das ganze heißt MinGW und ist eine Portierung des gcc auf Windows. Dazu gehört auch noch Portierung der Bourne Shell, damit auch die ganzen netten GNU Build Tools wie make, autoconfig und automake laufen. Die damit kompilierten Programme laufen dann auch ohne MinGW.

Die Anwendungen sollten eigentlich ziemlich kompatibel sein, nachdem gtk und die Standardlibs ja eigentlich auf beiden Betriebssystemen gleichermaßen vorhanden sein sollten. In einer Binary, die alles enthält, wäre natürlich noch handlicher, wenn auch nicht das effizienteste.

Leider unterscheiden sich meines Wissens die Standardbibliotheken von MS Compiler und die des gcc auch in einigen Punkten.

Gruß

Jens