2015-10-07 6 views
36

Ich habe gerade mein erstes Programm in C++ entwickelt und ich wollte es mit einem meiner Freunde zeigen. Leider, wenn er versucht, die exe zu öffnen, wird ein Fehler angezeigt, der besagt, dass "MSVCP140.dll fehlt". Warum passiert dieses Problem und wie kann er/ich es beheben?MSVCP140.dll fehlt

Antwort

53

Entweder Ihre Freunde laden Sie die Laufzeit-DLL machen (@ Kay Antwort) oder die App mit statischen Linken kompilieren.

Wechseln Sie im Visual Studio zu Project tab -> properties - > configuration properties -> C/C++ -> Code Generation für die Laufzeitbibliothek, wählen Sie /MTd für den Debug-Modus und /MT für den Freigabemodus.

Dadurch wird der Compiler die Laufzeitumgebung in die App einbetten. Die ausführbare Datei wird erheblich größer sein, aber sie wird ohne die Notwendigkeit von Laufzeit-DLLs ausgeführt.

+0

Könnten Sie vielleicht Zahlen hinzufügen, wie groß eine "Hallo Welt.exe" ist mit dynamischen und statischen Verknüpfung? – kay

+3

@Kay Static Linking enthält normalerweise nur das, was benötigt wird, nicht alles in der Bibliothek. Die Größenzunahme der ausführbaren Datei hängt davon ab, wie viel von der C-Laufzeit verwendet wird. – Andy

+0

Eigentlich ist es nicht notwendig, mit der Debug-Version der Laufzeit zu verlinken, außer dass Sie die Laufzeitbibliothek debuggen wollen. – user1810087

-1

Das ist wahrscheinlich die C++ - Laufzeitbibliothek. Da es eine DLL ist, ist es nicht in Ihrer Programmdatei enthalten. Ihr Freund kann diese Bibliotheken von Microsoft herunterladen.

+1

Entschuldigung, -1. Eine Antwort im Sinne von * "Das ist wahrscheinlich, was falsch ist, und dein Freund kann das irgendwie lösen" * ist keine Antwort. Außerdem ist die CRT nicht nur eine DLL. – IInspectable

52

Ihres Freundes PC fehlt die Runtime-Unterstützung DLLs für Ihr Programm:

+1

Dies ist eines der Dinge, mit denen Anwendungen im Rahmen ihrer Bereitstellung/Einrichtung zu kämpfen haben, da nicht alles, was Ihre Anwendung verwendet, in das Betriebssystem integriert ist. Siehe [Bereitstellen von systemeigenen Desktopanwendungen (Visual C++)] (https://msdn.microsoft.com/de-de/library/zebw5zk9.aspx). Beachten Sie, dass, wenn Ihre Anwendung eine Windows Store-Anwendung war, der Store die Bereitstellung des Visual C++ CRT für Sie übernimmt. –

+0

Ich bekomme den gleichen Fehler auf meinem PC, obwohl ich das volle Visual Studio 2015 installiert habe. Das Redistributable-Installationsprogramm wird beendet, da eine neuere Version bereits installiert ist. Irgendwelche Gedanken? – matth

2

dass in der Regel bedeutet, dass Ihr Freund nicht der Microsoft verteilbaren für Visual C++ hat. Ich nehme natürlich an, dass Sie VC++ und nicht MingW oder annother Compiler verwenden. Da dein Freund VS nicht installiert hat, gibt es keine Garantie, dass er die Redist installiert hat.

VC++ Distro