MSVCR90.DLL не найден
Я знаю, что такой вопрос уже задан, но ситуация немного отличается, и все ответы на эту проблему не сработали для меня.
Я пытаюсь скомпилировать код C в VS2008, и он не создает exe. Кроме того, когда я пытаюсь запустить его с помощью f5, я получаю:
Это приложение не удалось запустить потому что MSVCR90.DLL не найден.
Я сделал несколько поисковых запросов, и он сказал, что это связано с тем, что мой дистрибутив С++ не был установлен. Поэтому я установил это, перезапустил все и снова попробовал. Но, увы, я все равно получаю ту же ошибку. Кто-нибудь знает, как это исправить?
Ответы
Ответ 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 для конфигурации отладки. Установите свой компоновщик → Ввод → Игнорировать спецификацию библиотеки, чтобы включить следующее:
Ответ 5
он предположительно находится в http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en visual studio 2008. Да! После установки это обновление openoffice работает.
Ответ 6
Если вы дадите законченному exe кому-то другому, им нужно будет установить последнюю визуальную сцену c для ее запуска. Это будет работать только для выпуска AFAIK. Visual studio должен установить требуемое время исполнения как выпуск, так и отладка в ваш путь. Вероятно, у проекта есть дополнительная зависимость, случайно установленная для неправильной версии среды выполнения.
Посмотрите, помогает ли эта страница.
Ответ 7
Перейдите к своим настройкам проекта, Свойствам конфигурации → C/С++ → Генерация кода и измените библиотеку времени выполнения из многопоточной библиотеки DLL на многопоточную, а затем попытайтесь скомпилировать, но это не произойдет. Затем измените его на Multi-Threaded Debug и попытайтесь скомпилировать, но он не будет снова, а затем вы измените его обратно в многопоточную DLL, а затем его следует скомпилировать и запустить.