Kompatibilitätsprobleme VC++
-
Linke statisch gegen die CRT, dann gibt es keine Probleme und es läuft auf allen Platformen ab W2k (VC2008) oder W98 (VC2005).
-
Inzwischen war ich fast die ganze Zeit am Suchen in diversen Foren und auf Google... Aber mir konnte eigentlich nichts wirklich helfen (beispielsweise habe ich sehr viele Links auf CodeProject gesehen, die jedoch nicht gehen). Ich versuchte mich auch in der VC++-internen Suchfunktion und in Internet-Tutorials, es ist jedoch fast überall nur beschrieben, was Vorteile/Nachteile des statischen Linkens sind, dass man es bei gewissen Gegebenheiten durchführen soll, aber kaum irgendwo wie man es macht. Ich hab auch deine 3 Ratschläge mehrmals gesehen, Jochen, aber da gingen ja eben die Links nicht.
Wie bereits gesagt, ich bin noch ein blutiger Anfänger mit VC++, ich hab keine Ahnung von statischem Linken. Es wäre nett wenn ihr es kurz erklären könntet (das Prinzip habe ich schon ungefähr verstanden, jedoch nicht, wie man es macht). Einfach bei den Projekt-Eigenschaften die Laufzeitbibliothek auf /MT oder /MTd zu schalten reicht ja nicht aus, wie kann man z.B. "gegen" CRT oder gewisse Bibliotheken linken? Sorry wenn ich mich dumm anstelle, ich komme aber wirklich nicht mehr weiter. Ich wäre sehr froh um eine kurze Beschreibung, welche konkreten Einstellungen ich nun vornehmen muss.
Es tut mir leid wegen der Unannehmlichkeiten, doch ich denke, mein Problem sollte in kurzer Zeit geklärt sein. Vielen Dank schonmal zum Voraus.
-
Nexus schrieb:
Einfach bei den Projekt-Eigenschaften die Laufzeitbibliothek auf /MT oder /MTd zu schalten reicht ja nicht aus, wie kann man z.B. "gegen" CRT oder gewisse Bibliotheken linken?
*Warum* reicht es nicht?
Was verstehst Du unter "gewisse"?
-
Es reicht insofern nicht aus, als ich mir nicht gut vorstellen kann, dass der Compiler einfach so weiss, gegen welche Bibliotheken ich linken will. Muss ich diese ins Projekt einbinden oder sonst irgendwo erwähnen, oder einfach bei der Linker-Eingabe (da gab es bei mir vorhin massenhaft Fehler)?
Mit "gewisse" meine ich eigentlich Bibliotheken allgemein; d.h. wie man bei irgendeiner beliebigen Bibliothek vorgehen soll, um sie statisch zu linken. Das ist nämlich das, was ich nicht verstehe.
-
Wenn Du andere LIBs als die von MS nimmst, musst Du es dem Compiler/Linker sagen. Ansonsten ist MS nicht ganz so dumm wie Du denkst...
-
Dass der Eindruck erweckt wird, ich fände MS dumm, liegt wohl daran, dass ich momentan grad Probleme habe, damit umzugehen

Doch nun zurück zum Problem, wie kann ich CRT statisch linken? Welche konkreten Einstellungen muss ich vornehmen?
-
Extra für Dich:
Ein Screencast mit 50 Sekunden:
www.kalmbach-software.de/screencasts/VC2008EE-StaticLinkCRT/
(mangels Mikrofon, leider noch ohne Ton... wird aber noch nachgeliefert)
-
Da Du aber die Express hast wirst du ein Problem haben überhaupt MFC verwenden zu können. Die ist dort nicht dabei.
Und mal allgemein: Wenn Du eine DLL verwendest dann musst Du diese auch mitliefern. Es ist nicht immer alles auf anderen Computern installiert.
Deshlab gibt es auch die VCREDISTRIBUTABLE. Diese kann man sich bei MS runterladen und müssen auf den anderen Rechnern installiert werden wenn man nicht statisch linkt.
-
Unix-Tom schrieb:
Da Du aber die Express hast wirst du ein Problem haben überhaupt MFC verwenden zu können. Die ist dort nicht dabei.
Wenn er von Dev C++ umsteigt wird er wohl kaum Probleme mit der Express-Edition bekommen... er hat nur im falschen Forum gepostet...
Unix-Tom schrieb:
Deshlab gibt es auch die VCREDISTRIBUTABLE. Diese kann man sich bei MS runterladen und müssen auf den anderen Rechnern installiert werden wenn man nicht statisch linkt.
Aus diesem Grunde empfehle ich ja immer (wenn es geht) statisch zu linken, um diesen unnötigen Schritt zu unterbinden. Nicht jeder schreibt einen Installer für seine Anwendung...
-
So, jetzt gibts das ganze auch mit Ton

http://www.kalmbach-software.de/screencasts/VC2008EE-StaticLinkCRT/
-
Hallo
Gleich zu den FAQ damit.
chrische