web-dev-qa-db-fra.com

MSVCP120d.dll manquant

Chaque fois que je veux compiler mon projet Visual Studio, je reçois le message que MSVCP120d.dll est manquant. Google ne peut pas m'aider. J'ai déjà installé des redistribuables mais ils ne m'ont pas aidé. J'ai aussi trouvé ceci:

Msvcp120d.dll Déboguez la version du moteur d'exécution C++. Pas de redistribution permis.

http://msdn.Microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx

35
MazzMan

D'après les commentaires, le problème était dû à l'utilisation de dll générées avec Visual Studio 2013 dans un projet compilé avec Visual Studio 2012. La raison en était une bibliothèque tierce nommée les dossiers contenant les dlls vc11, vc12. Il faut être prudent avec tout système utilisant la version du compilateur (moins de 4 chiffres), car cela ne correspond pas à la version de Visual Studio (sauf pour Visual Studio 2010).

  • vc8 = Visual Studio 2005
  • vc9 = Visual Studio 2008
  • vc10 = Visual Studio 2010
  • vc11 = Visual Studio 2012
  • vc12 = Visual Studio 2013
  • vc14 = Visual Studio 2015

Les dll runtime Microsoft C++ utilisent un code à 2 ou 3 chiffres également basé sur la version du compilateur et non sur la version de Visual Studio.

  • MSVCP80.DLL provient de Visual Studio 2005
  • MSVCP90.DLL provient de Visual Studio 2008
  • MSVCP100.DLL provient de Visual Studio 2010
  • MSVCP110.DLL provient de Visual Studio 2012
  • MSVCP120.DLL provient de Visual Studio 2013
  • MSVCP140.DLL provient de Visual Studio 2015
53
drescherjm

Je me suis retrouvé à perdre mon temps à chercher une solution à ce problème et je pense que je le referai à l'avenir. Alors, voici une note pour moi-même et les autres personnes qui pourraient trouver cela utile.

Si MSVCP120.DLL est manquant, cela signifie que vous n'avez pas installé les packages redistribuables Visual C++ pour Visual Studio 2013 (x86 et x64). Installez-le, redémarrez et vous devriez trouver ce fichier dans c:\Windows\System32.

Désormais, si MSVCP120D.DLL est manquant, cela signifie que l'application que vous essayez d'exécuter est créée en mode débogage. Comme OP l’a mentionné, la version de débogage du moteur d’exécution n’est PAS distribuable. 

Alors que faisons-nous?

À mon avis, il existe une option: accédez à la configuration de débogage de votre projet> C/C++> Génération de code> Bibliothèque d’exécution et sélectionnez Débogage multithread (/ MTd). Cela liera statiquement MSVCP120D.dll à votre exécutable. 

Il existe également une solution rapide si vous souhaitez simplement obtenir quelque chose rapidement: Copiez le dossier MSVCP120D.DLL à partir de sys32 (le mien est C:\Windows\System32). Vous pouvez également avoir besoin de MSVCR120D.DLL.

Addendum à la solution rapide: Pour réduire les approximations, vous pouvez utiliser dependency walker . Ouvrez votre application avec Dependency Walker et vous verrez quels fichiers dll sont nécessaires. 

Par exemple, ma dernière application a été créée dans Visual Studio 2015 (ordinateur Windows 10 64 bits) et je la cible sur un ordinateur Windows XP 32 bits. Avec Dependency Walker, mon application (voir capture d'écran) a besoin des fichiers suivants:

  • opencv _ *. dll <- mes propres fichiers dll (peuvent aussi avoir une dépendance)
  • msvcp140d.dll <- SysWOW64\msvcp140d.dll
  • kernel32.dll <- SysWOW64\kernel32.dll
  • vcruntime140d.dll <- SysWOW64\vcruntime140d.dll
  • ucrtbased.dll <- SysWOW64\ucrtbased.dll

En plus des fichiers opencv * que j'ai construits, il me faudrait également copier les fichiers système à partir de C:\Windows\SysWow64 (System32 pour 32 bits). 

Vous êtes les bienvenus. :-)

41
bot3663369

Mon problème était avec les compilations x64 déployées sur une machine de test à distance. J'ai trouvé les versions x64 de msvp120d.dll et msvcr120d.dll dans 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT
2
Kevin Johnsrude

J'ai le même problème avec vous lorsque j'ai implémenté OpenCV 2.4.11 sur VS 2015 . J'ai essayé de résoudre ce problème par trois méthodes, l'une après l'autre mais elles ne fonctionnaient pas :

  1. téléchargez MSVCP120.DLL en ligne et ajoutez-le au chemin Windows et au chemin d'accès au fichier bin OpenCV
  2. installer les packages redistribuables Visual C++ pour Visual Studio 2013 à la fois x86 et x86
  3. ajuster le mode de débogage. Allez à la configuration> C/C++> Génération de code> Bibliothèque d’exécution et sélectionnez Débogage multithread (/ MTd).

Enfin, j'ai résolu ce problème en réinstallant VS2015 en sélectionnant toutes les options pouvant être installées , cela prend beaucoup de place, mais cela fonctionne vraiment.

2
rookiechen

J'ai téléchargé msvcr120d.dll et msvcp120d.dll pour la version 32 bits, puis les ai placés dans le dossier Debug de mon projet. Cela a bien fonctionné (Mon ordinateur est une version 64 bits) 

2
Anandi

J'ai eu le même problème dans Visual Studio Pro 2017: fichier MSVCP120.dll manquant en mode de publication et fichier MSVCP120d.dll manquant en mode débogage. J'ai installé Paquets redistribuables Visual C++ pour Visual Studio 2013 et Mise à jour pour le paquet redistribuable Visual C++ 2013 et Visual C++ comme suggéré ici Réponse de Microsoft a corrigé le mode de publication . Pour le mode débogage, ce qui a finalement fonctionné a été de copier msvcp120d.dll et msvcr120d.dll à partir d’un autre ordinateur (avec Visual studio 2013) dans C:\Windows\System32.

1
lahmania