MSVCR90.DLL не был найден - PullRequest
       11

MSVCR90.DLL не был найден

12 голосов
/ 16 ноября 2008

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

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

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

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

Ответы [ 7 ]

11 голосов
/ 16 ноября 2008

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

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

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

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

6 голосов
/ 16 ноября 2008

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

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

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

Вы можете:

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

  • Измените эти проекты для использования статической среды выполнения: C / C ++ -> Генерация кода -> Библиотека времени выполнения: / MT или MTd (аналогично # 4 выше)

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

4 голосов
/ 08 февраля 2009

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

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

3 голосов
/ 03 июня 2010

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

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

  • MSVCRT
  • MSVCR90
1 голос
/ 28 февраля 2011

предположительно в библиотеке времени выполнения Visual Studio 2008 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en. Да! После установки обновления openoffice работает.

0 голосов
/ 27 апреля 2009

Перейдите в настройки проекта, Свойства конфигурации-> C / C ++ -> Генерация кода и измените Runtime Library с Многопоточная DLL на Многопоточную, а затем попробуйте скомпилировать, но это не произойдет. Затем измените его на Многопотоковую отладку и попробуйте скомпилировать, но это не произойдет снова, а затем вернитесь к Многопоточному DLL, а затем он должен скомпилироваться и запустить.

0 голосов
/ 16 ноября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...