[Microsoft C Compiler (Visual Studio 2005)] Wie standalone exe erstellen ohne .net Abhänigkeit?
-
Eine kleine Konsolenanwendung compiled mit GCC auf eine Größe von ca. 600 kb. Ich habe versucht diese unter Windows ohne .net Framework laufen zu lassen und das hat funktioniert. Das meine Programme unter Windows und Linux ohne Abhängigkeiten laufen ist das was ich erreichen will.
Wenn ich bei Visual Studio ein neues Projekt mache, Win32 Konsolenanwendung dann dachte ich das es da auch um natives C++ geht. Die compilierte exe funktioniert und ist etwa ein Zehntel so groß wie die von GCC, also 60 kb. Sie funktioniert allerdings nur auf dem Windows auf dem ich sie erstellt habe. Auf Windows ohne .net framework bekomme ich eine Fehlermeldung.
Kann ich dem Microsoft C Compiler der mit Vs05 mitkommt einbläuen das er eine richtige exe erstellen soll und keine die noch Abhängigkeiten brauch?
-
Der Zielrechner braucht einfach nur die aktuellste C-Runtime, mehr nicht. Die aktuellste ist zufällig beim .NET-Download dabei. Möglichkeiten ohne .NET:
1. Du linkst die Runtime statisch und nicht dynamisch, dann wird die EXE etwas größer.
Projekt -> Eigenschaften -> C++ -> Codegenerierung2. Der Enduser lädt sich vorher das aktuelle C-Runtime runter. Dann brauchst du nicht statisch linken.
Hat also alles nichts mit .NET zutun.
-
Danke erstmal für die Erklärung. 1. gefällt mir deutlich besser.
Habe bei Projekt -> Eigenschaften -> C++ -> Codegenerierung nachgesehen. Aber da steht nichts von statisch, dynamisch oder C Runtime und so weiter.
Biite sag mir noch wie diese Einstellung genau heißt.
-
Projekt -> Eigenschaften -> C++ -> Codegenerierung -> Runtime
und entsprechend die statische oder dynamische Variante auswählen.
-
Ich habe mal einen Screenshot gemacht weil ich das dort wirklich nicht finden kann.
http://img394.imageshack.us/img394/1900/vs05rp6.jpg
-
Laufzeitbibliothek!
DLL heißt dynamisch.
-
Steht doch aber schon auf dll. Ist doch die Standard Einstellung.