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

MSVCR90.DLL не найден

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

Я пытаюсь скомпилировать код C в VS2008, и он не создает exe. Кроме того, когда я пытаюсь запустить его с помощью f5, я получаю:

Это приложение не удалось запустить потому что MSVCR90.DLL не найден.

Я сделал несколько поисковых запросов, и он сказал, что это связано с тем, что мой дистрибутив С++ не был установлен. Поэтому я установил это, перезапустил все и снова попробовал. Но, увы, я все равно получаю ту же ошибку. Кто-нибудь знает, как это исправить?

4b9b3361

Ответ 1

Это звучит как проблема с установкой VS2008 или что-то не так с вашим пути поиска DLL. MSVCR90.DLL устанавливается при установке VS2008, вам не нужно устанавливать какие-либо дополнительные распространяемые пакеты.

Сначала я бы проверил вашу переменную среды PATH и удостоверился, что в ней нет gobbledydook, который сломает некоторые записи, и если вы не найдете там проблемы, я бы удалил и переустановил Visual Studio.

Вы также можете попробовать найти MSVCR90.DLL(и другие подобные DLL файлы) и перенести их в папку Windows/System32.

Если вы просто хотите начать работу, еще одна вещь, которую вы можете сделать, - это изменить проект, чтобы статически ссылаться на библиотеки времени выполнения, а затем даже попытаться загрузить эту DLL. Перейдите в настройки своего проекта, Свойства конфигурации → C/С++ → Генерация кода и измените библиотеку времени выполнения из многопоточной библиотеки DLL на просто многопоточную (или любую из опций, которая не заканчивается с DLL).

Ответ 2

Вот некоторые вещи, которые нужно проверить для вашей конфигурации проекта - на общей вкладке:

  • .1 Тип конфигурации - exe в вашем случае.
  • .2 Использование MFC: если это приложение MFC, оно может быть более переносимым, если вы это сделаете: используйте MFC в статической библиотеке.
  • .3 Использование ATL - если вы не используете atl (или не уверены), скажем, не используя ATL.
  • .4 В разделе C/С++ → Библиотека времени выполнения: произведите многопоточную отладку (для отладочной версии) или многопоточную (для версии выпуска).

Если вы получаете конкретные ошибки компоновщика, которые говорят, что что-то уже определено: Это означает, что у вас есть некоторые части вашего приложения (отдельные библиотеки связаны с вашим exe), которые создаются с помощью другой ссылки на время выполнения:

Вы можете:

  • Убедитесь, что эти библиотеки были скомпилированы с той же версией visual studio, что и ваше приложение.

  • Измените эти проекты на использование статической среды выполнения: C/С++ → Генерация кода → Runtime LIbrary:/MT или MTd (то же, что и # 4 выше)

  • Если у вас все еще есть некоторые конкретные ошибки, попробуйте указать компоновщику игнорировать определенные библиотеки: перейдите в Linker- > Ignore Specific Library и поместите в библиотеку, которую вы хотите игнорировать. Это чаще всего используется для libcmt.lib или libcmtd.lib. Важно также знать, что lib, заканчивающийся на 'd', обычно является версией отладки. Если вы создаете сборку выпуска, и вы получаете "уже определенную в libcmtd.lib", это означает, что где-то вы связываете lib-версию с debug lib.

Ответ 3

если вы удалите файл манифеста, связанный с вами .exe, вы получите ту же ошибку.

MSVCR90.dll не установлен в system32, но в боковой папке, поэтому требуется манифест.

Ответ 4

Я только что был укушен этим, и эта страница снова заработала меня.

Ключ должен игнорировать библиотеки MSVCRT и MSVCR90 для конфигурации отладки. Установите свой компоновщик → Ввод → Игнорировать спецификацию библиотеки, чтобы включить следующее:

  • MSVCRT
  • MSVCR90

Ответ 6

Если вы дадите законченному exe кому-то другому, им нужно будет установить последнюю визуальную сцену c для ее запуска. Это будет работать только для выпуска AFAIK. Visual studio должен установить требуемое время исполнения как выпуск, так и отладка в ваш путь. Вероятно, у проекта есть дополнительная зависимость, случайно установленная для неправильной версии среды выполнения.

Посмотрите, помогает ли эта страница.

Ответ 7

Перейдите к своим настройкам проекта, Свойствам конфигурации → C/С++ → Генерация кода и измените библиотеку времени выполнения из многопоточной библиотеки DLL на многопоточную, а затем попытайтесь скомпилировать, но это не произойдет. Затем измените его на Multi-Threaded Debug и попытайтесь скомпилировать, но он не будет снова, а затем вы измените его обратно в многопоточную DLL, а затем его следует скомпилировать и запустить.