4

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

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

Поиски в 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, но не msvcr110 d.dll. Похоже, версия выпуска была установлена, но не отладка. Я вижу msvcr120 d.dll, какой должна быть версия 2013 года? Так не следует ли использовать Visual Studio 2013 вместо msvcr110 d.dll?

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

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

Doug

2 ответа2

4

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

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .