MSVCR90.DLL was not found

71,929

Solution 1

It sounds like either a problem with your VS2008 installation, or something wrong with your DLL search path. MSVCR90.DLL is installed when you install VS2008, you shouldn't have to install any additional redistributable packages.

First I would check your PATH environment variable and make sure there is no gobbledydook in it that will break some of the entries, and if you don't find a problem there, then I would uninstall and reinstall Visual Studio.

You could also try searching for MSVCR90.DLL (and other DLLs like it), and move them to your Windows/System32 folder.

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).

Solution 2

Here are some things to check for your configuration of the project- under the general tab:

  • .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).

If you are getting specific linker errors that say something is already defined: This means that you have some parts of your app (separate libs being linked to your exe) that are built with different runtime linking:

You can:

  • 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.

Solution 3

I have just been bitten by this and this page got me working again.

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

Solution 4

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.

Share:
71,929
Per Knytt
Author by

Per Knytt

I am a programmer always looking to learn more.

Updated on January 07, 2020

Comments

  • Per Knytt
    Per Knytt over 4 years

    I know a question like this was already asked, but the situation is a little different, and all the answers on that problem didn't work for me.

    I'm trying to compile some C code in VS2008 and it doesn't create an exe. Also, when I try to run it with f5, I get:

    This application has failed to start because MSVCR90.DLL was not found.

    I did some googling and it said that this was because my c++ redistributable package wasnt installed. So I installed that, restarted everything and tried again. But alas, I still get the same error. Does anyone have any clue how to fix this?