msvc runtime library statisch linken



  • hallo

    ich habe ein projekt welches ich zu einer exe-datei kompiliert habe. als ich einem freund die datei gegeben habe bekam er die meldung, dass msvcp100.dll fehlt. nach kurzem googlen kam ich auch auf mehrere threads die alle das selbe sagten -> laufzeitbibliothek auf "Multithreaded (/MT)" stellen. gesagt, getan. jedoch bekam ich beim erstellen dann folgende fehler:
    http://img4host.net/upload/1221145852aa194250b97.PNG (und noch dutzende andere im selben stil)
    http://img4host.net/upload/1221151152aa194f1703b.PNG
    die zweite ist interessanter. ich habe "/NODEFAULTLIB" zu den flags hinzugefügt, jedoch hat sich nichts geändert.

    kann mir da jemand helfen?



  • Da überschneiden sich die Referenzen von genutzten Funktionen der MSVC Standard-Bibliothek. Während du deine Anwendung mit MT kompilierst, wurden zusätzliche Bibliotheken wohl mit MD kompiliert. Somit wird z.B. die selbe Funktion versucht, sowohl in der MT als auch der MD Bibliothek zu linken -> Fehler.



  • mit zusätzliche bibliotheken ist z.b. sfml gemeint? wenn ja, gibt es irgend eine möglichkeit das dennoch statisch zu linken? weil auf dem pc des freundes ist die neuste msvc runtime library installiert und dennoch läuft es nicht...



  • dann soll e die passende version installieren. msvcp100.dll müsste vom namen her VS2010 sein. dynamisches linken der stdlib sollte der standardweg sein



  • Unter MSVC-Programmen ist es üblich, die Standard-Bibliothek dynamisch zu linken. Wenn dein Freund diese nicht hat, sollte er sie nachinstallieren, was entweder früher oder später über ein Windows Update erfolgt oder manuell getan werden sollte. msvcp100.dll ist von MSVC 10 (2010).


Anmelden zum Antworten