Visual Studio 2013 MSVCR110d.dll отсутствует

Я не совсем уверен, относится ли это к SuperUser или StackOverflow, но, похоже, это не проблема кодирования, поэтому я собираюсь поработать с этим.

Я начал работать над игрой на C++ с использованием Visual Studio 2013 с использованием FreeGLUT и FreeImage. Я могу скомпилировать и запустить его на своем рабочем столе без проблем, но когда я пытаюсь скомпилировать тот же код на своем ноутбуке, я получаю сообщение об ошибке "msvcr110d.dll отсутствует на вашем компьютере". После этого вероятность того, что Visual Studio зависнет, составляет около 50%, и я вынужден перезагрузить компьютер, поскольку диспетчер задач не может остановить процесс (еще одна проблема, над которой я до сих пор работаю).

Поиски в Google сказали мне установить Visual C++ Redistributable 2012, однако он уже был установлен на этом ноутбуке (как x86, так и x64) и переустановлен (с http://www.microsoft.com/en-us/download/details.aspx?id=30679) вообще не помогло. Я также пытался установить Visual C++ Redistributable 2013 (x86 и x64, http://www.microsoft.com/en-us/download/details.aspx?id=40784), но безрезультатно. Обе эти ссылки имеют функцию загрузки ARM. Я не уверен, что это такое, и попытка установить его приводит к появлению всплывающего сообщения о том, что я не могу установить его в этой версии Windows (Windows 8), поэтому я предполагаю, что мне это не нужно,

Глядя в папку C:\Windows\SysWow64, я вижу msvcr110.dll, но не msvcr110d.dll. Похоже, версия выпуска была установлена, но не отладка. Я вижу msvcr120d.dll, которая должна быть версией 2013 года, верно? Так не следует ли использовать Visual Studio 2013 вместо msvcr110d.dll?

Запуск стандартного проекта C++ HelloWorld не имеет этой проблемы, поэтому я предполагаю, что он должен иметь отношение к FreeGLUT или FreeImage. Однако он компилируется и запускается на моем рабочем столе без проблем, поэтому я считаю, что все закодировано и связано правильно. Я добавил каталоги include, каталоги библиотек (оба из которых были отладочными) и добавил opengl32.lib & FreeImaged.lib в качестве дополнительных зависимостей.

Установка Visual C++ Redistributable не помогла, так есть ли другой способ решения этой проблемы? Должна ли Visual Studio 2013 вообще использовать msvcr110d.dll или она должна использовать msvcr120d.dll? Нужно ли устанавливать ARM со страницы загрузки MSVCR? Я использую 64-разрядную версию Windows 8 (также новый ноутбук, поэтому я не думаю, что есть какие-либо проблемы с коррупцией). Заранее спасибо за помощь.

Doug

2 ответа

"Запуск стандартного проекта C++ HelloWorld не имеет этой проблемы, поэтому я предполагаю, что он должен иметь отношение к FreeGLUT или FreeImage".

Я думаю, что вы на правильном пути. Похоже, что FreeGLUT или FreeImage компилируется в режиме отладки, и поэтому запрашиваются версии "D". Убедитесь, что вы используете компиляции релизов ваших зависимостей.

Если вы пытаетесь выполнить удаленную отладку (или, возможно, в других сценариях), вам может потребоваться изменить параметр "Библиотека времени выполнения": "Многопоточная отладочная DLL (/MDd) ->" Многопоточная отладка "(/MTd).

Вы можете добиться этого (в VS2012), щелкнув правой кнопкой мыши на своем проекте, выбрав Properties -> C++ -> Code Generation а затем потянув вниз Runtime Library и измените его на один из параметров без "DLL" (выберите свой параметр в зависимости от того, хотите ли вы режим отладки или генерацию режима выпуска).

Надеюсь это поможет.

Другие вопросы по тегам