MSVCP120d.dll отсутствует
Каждый раз, когда я хочу скомпилировать мой проект Visual Studio, я получаю сообщение о том, что MSVCP120d.dll отсутствует. Google не может мне помочь. Я уже установил некоторые распространяемые компоненты, но они не помогли. Я также нашел это:
Msvcp120d.dll Отладка версии С++. Нет перераспределения допускается.
http://msdn.microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx
Ответы
Ответ 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".