Подтвердить что ты не робот

MSVCP120d.dll отсутствует

Каждый раз, когда я хочу скомпилировать мой проект Visual Studio, я получаю сообщение о том, что MSVCP120d.dll отсутствует. Google не может мне помочь. Я уже установил некоторые распространяемые компоненты, но они не помогли. Я также нашел это:

Msvcp120d.dll Отладка версии С++. Нет перераспределения допускается.

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

4b9b3361

Ответ 1

Судя по комментариям, проблема была вызвана использованием библиотек DLL, созданных с помощью Visual Studio 2013, в проекте, скомпилированном с Visual Studio 2012. Причиной этого была сторонняя библиотека, которая называла папки, содержащие библиотеки DLL vc11, vc12. Следует соблюдать осторожность с любой системой, в которой используется версия компилятора (менее 4 цифр), поскольку она не соответствует версии Visual Studio (за исключением 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
  • vc15 = Visual Studio 2017
  • vc16 = Visual Studio 2019

В исполняемых библиотеках Microsoft C++ используется двузначный или трехзначный код, также основанный на версии компилятора, а не на версии Visual Studio.

  • MSVCP80.DLL из Visual Studio 2005
  • MSVCP90.DLL из Visual Studio 2008
  • MSVCP100.DLL из Visual Studio 2010
  • MSVCP110.DLL из Visual Studio 2012
  • MSVCP120.DLL из Visual Studio 2013
  • MSVCP140.DLL из Visual Studio 2015, 2017 и 2019

Между Visual Studio 2015, 2017 и 2019 существует двоичная совместимость.

Ответ 2

Я обнаружил, что трачу время на поиск решения по этому вопросу, и я подозреваю, что буду делать это снова в будущем. Итак, здесь записка для меня и других, которые могут найти это полезным.

Если MSVCP120.DLL отсутствует, это значит, что вы не установили распространяемые пакеты Visual С++ для Visual Studio 2013 (x86 и x64). Установите это, перезапустите, и вы должны найти этот файл в каталоге c:\Windows\System32.

Теперь, если отсутствует MSVCP120D.DLL, это означает, что приложение, которое вы пытаетесь запустить, встроено в режим отладки. Как указывал OP, отладочная версия среды выполнения НЕ является распределяемой.

Итак, что мы делаем?

Ну, есть один из вариантов, о котором я знаю: перейдите в конфигурацию проекта Debug > C/С++ > Генерация кодa > Библиотека времени выполнения и выберите Multi-threaded Debug (/MTd). Это статически связывает MSVCP120D.dll с вашим исполняемым файлом.

Существует также быстрое исправление, если вы просто хотите что-то ускорить: Скопируйте MSVCP120D.DLL из папки sys32 (моя C:\Windows\System32). Вам также может понадобиться MSVCR120D.DLL.

Добавление к быстрому исправлению: Чтобы уменьшить догадки, вы можете использовать зависимый ходок. Откройте приложение с зависимым ходоком, и вы увидите, какие файлы DLL необходимы.

Например, мое последнее приложение было создано в Visual Studio 2015 (64-разрядная машина Windows 10), и я нацеливаю его на 32-разрядную машину под управлением Windows XP. Использование зависимого ходока, мое приложение (см. Снимок экрана) нуждается в следующих файлах:

  • opencv _ *. dll < - мои собственные файлы dll (также могут иметь зависимость)
  • msvcp140d.dll < - SysWOW64\msvcp140d.dll
  • kernel32.dll < - SysWOW64\kernel32.dll
  • vcruntime140d.dll < - SysWOW64\vcruntime140d.dll
  • ucrtbased.dll < - SysWOW64\ucrtbased.dll

Помимо файлов opencv *, которые я создал, мне также нужно будет скопировать системные файлы из C:\Windows\SysWow64 (System32 для 32-разрядных).

Добро пожаловать.: -)

Ответ 3

Я загрузил msvcr120d.dll и msvcp120d.dll для 32-битной версии, а затем я поместил их в папку Debug моего проекта. Он работал хорошо. (Мой компьютер - 64-разрядная версия)

Ответ 4

Моя проблема заключалась в компиляциях x64, развернутых на удаленную тестовую машину. Я нашел x64 версии msvp120d.dll и msvcr120d.dll в

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

Ответ 5

У меня такая же проблема с вами, когда я реализую OpenCV 2.4.11 на VS 2015. Я попытался решить эту проблему тремя методами один за другим , но они не работали:

  • загрузите MSVCP120.DLL онлайн и добавьте его в путь к Windows и путь к файлу OpenCV.
  • установить распространяемые пакеты Visual С++ для Visual Studio 2013 как x86, так и x86
  • настроить режим отладки. Перейдите в конфигурацию > C/С++ > Генерация кодa > Библиотека времени выполнения и выберите Multi-threaded Debug (/MTd)

Наконец, я решил эту проблему с помощью переустановки VS2015 с выбором всех параметров, которые могут быть установлены, это занимает много места, но это действительно работает.

Ответ 6

У меня была та же проблема в Visual Studio Pro 2017: отсутствует файл MSVCP120.dll в режиме выпуска и отсутствует файл MSVCP120d.dll в режиме отладки. Я установил распространяемые пакеты Visual C++ для Visual Studio 2013 и Обновление для Visual C++ 2013 и распространяемый пакет Visual C++, как предложено здесь. Microsoft ответила на этот исправленный режим выпуска. Для режима отладки в итоге сработало копирование msvcp120d.dll и msvcr120d.dll с другого компьютера (с Visual Studio 2013) в C:\Windows\System32

Ответ 7

Альтернативный подход: без установки распространяемого пакета.

Загляните в какой-нибудь github для соответствующей библиотеки DLL, некоторые люди загружают ссылочную библиотеку DLL для своей зависимости приложения.

Вы можете скачать и использовать их в своем проекте, я использовал и успешно запустить их.

пример: https://github.com/Emotiv/community-sdk/find/master

Ответ 8

Если вы на самом деле не используете библиотеки Debug, а вместо этого пытаетесь скомпилировать конфигурацию VS "Debug" по умолчанию, вы можете просто изменить конфигурацию "Release".