MSVCR90.DLL не найден

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

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

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

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

0
Downvote for dup, это просто еще один аспект вашего stackoverflow.com/questions/293380/…
добавлено автор Aidan Ryan, источник
уменьшите свой проект до его простой формы (например, «привет мир») и опубликуйте код, makefile, журнал сборки и все остальное, что у вас есть, и мы можем вам помочь. В противном случае вы стреляете в темноте.
добавлено автор Steven A. Lowe, источник

5 ответы

Я просто укусил это и эту страницу снова заработал.

The key is to ignore MSVCRT and MSVCR90 libraries for the debug configuration. Set your linker -> Input -> Ignore Specific Library setting to include the following:

  • MSVCRT
  • MSVCR90
0
добавлено

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

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

0
добавлено

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

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

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

If you just want to get going now, another thing you could do is change your project to statically link to the runtime libraries, and then it wont even try to load that DLL. Go to your Project settings, Configuration Properties->C/C++->Code Generation and change Runtime Library from Multi-Threaded DLL to just Multi-Threaded (or any of the options that doesn't end with DLL).

0
добавлено

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

  • .1 Configuration type - exe in your case.
  • .2 Use of MFC: if this is an MFC application it might be more portable if you do: Use MFC in a static library.
  • .3 Use of ATL - if not using atl (or not sure) say Not using ATL.
  • .4 Under C/C++ -> Runtime Library: Say Multi-threaded Debug (for debug version) or Multi-Threaded (for release version).

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

Ты можешь:

  • Make sure that these libraries were compiled with the same version of visual studio as your application.

  • Change those projects to use static runtime: C/C++ -> Code Generation -> Runtime LIbrary: /MT or MTd (same as #4 above)

  • If you still have some specific errors try telling the linker to ignore certain libraries: Go to Linker->Ignore Specific Library and put in the library that you want to ignore. This is most common for 'libcmt.lib' or 'libcmtd.lib'. It is important also to know that lib ending with 'd' is usually the debug version. If you are creating a release build and you are getting 'already defined in libcmtd.lib' that means that somewhere you are linking a release lib to a debug lib.

0
добавлено

it is supposedly in the http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en visual studio 2008 runtime library. Yes! After installing that, openoffice update works.

0
добавлено