Saltar al contenido

c ++ – Falta MSVCP120d.dll

octubre 29, 2021
apple touch icon@2

Me he encontrado perdiendo el tiempo buscando una solución a esto, y sospecho que lo volveré a hacer en el futuro. Así que aquí hay una nota para mí y para otros que podrían encontrar esto útil.

Si falta MSVCP120.DLL, significa que no ha instalado paquetes redistribuibles de Visual C ++ para Visual Studio 2013 (x86 y x64). Instálelo, reinicie y debería encontrar este archivo en c: Windows System32.

Ahora, si falta MSVCP120D.DLL, esto significa que la aplicación que está intentando ejecutar está construida en modo de depuración. Como ha mencionado OP, la versión de depuración del tiempo de ejecución NO es distribuible.

¿Asi que que hacemos?

Bueno, hay una opción que conozco: Vaya a la configuración de depuración de su proyecto> C / C ++> Generación de código> Biblioteca en tiempo de ejecución y seleccione Depuración de subprocesos múltiples (/ MTd). Esto vinculará estáticamente MSVCP120D.dll a su ejecutable.

También hay una solución rápida si solo desea obtener algo rápidamente: Copie el MSVCP120D.DLL de la carpeta sys32 (el mío es C: Windows System32). También puede necesitar MSVCR120D.DLL.

Anexo a la solución rápida: Para reducir las conjeturas, puede utilizar caminante de la dependencia. Abra su aplicación con dependency walker y verá qué archivos dll se necesitan.

Por ejemplo, mi aplicación reciente se creó en Visual Studio 2015 (máquina con Windows 10 de 64 bits) y la estoy orientando a una máquina con Windows XP de 32 bits. Usando el andador de dependencia, mi aplicación (ver captura de pantalla) necesita los siguientes archivos:

  • opencv _ *. dll
  • msvcp140d.dll
  • kernel32.dll
  • vcruntime140d.dll
  • ucrtbased.dll

Aparte de los archivos opencv * que he creado, también necesitaría copiar los archivos del sistema de C: Windows SysWow64 (System32 para 32 bits).

Eres bienvenido. 🙂

close