58

I recently installed MinGW on my 64-bit Windows 7 computer and when I attempt to compile the most basic of c++ programs, for example

#include<iostream>

using namespace std;

int main()
{
    cout << "Hello World" << endl;
    return 0;
}

I get the error that "The program can't start because libgmp-10.dll is missing from your computer."

GEOCHET
  • 21,119
  • 15
  • 74
  • 98
neofu50
  • 699
  • 1
  • 5
  • 7

10 Answers10

86

Have you tried adding C:\MinGW\bin as a System variable Path (not PATH) in Settings->System Properties->Environment Variables?

I saw this solution on this page: Missing libgmp-10.dll

Lucian
  • 3,407
  • 2
  • 21
  • 18
  • 5
    restarting `cmake-gui` after setting path is important. It didn't work for me without restart. – Jayesh Nov 13 '13 at 04:46
  • With cmake-gui, apart from restarting, you may also need to empty the content of the Build folder for the fix to work. – zx81 Jun 21 '15 at 22:55
  • 2
    Deleting the CMake cache (File menu/Delete Cache) seems to do the trick also without having to delete the entire binary directory. – Roland Sarrazin Oct 13 '15 at 08:53
10

Go to the mingw download page and browse the following directories:

MinGW / Base / gmp / gmp-5.0.1-1

Currently you end up with the following link:
http://sourceforge.net/projects/mingw/files/MinGW/Base/gmp/gmp-5.0.1-1/libgmp-5.0.1-1-mingw32-dll-10.tar.lzma/download
and it contains the needed file.

I know there are automated methods for installing mingw gcc, but when one uses single mingw packages, then gmp is one of obligatory downloads.

Jarekczek
  • 7,456
  • 3
  • 46
  • 66
5

added

c:/MinGW/bin to PATH

and restarted CMake-gui

worked for me

santosh
  • 51
  • 1
  • 2
3

I came upon this question when I started CodeBlocks and then clicked on my project. After the project notes appeared and I pressed OK, the error appeared:

"System Error: The program can't start because libgmp-10.dll is missing from your computer. Please reinstall the application to fix this problem."

I presse OK a bunch of times and then was able to do normal compile, link, etc. but that error showed up everytime I started C::B and went to the project. Then I noticed that the LLVM Clang compiler was my default compiler in the compiler settings, though GCC was set as the compiler specific to the project I was working on.

The solution was to set the compiler in the compiler settings to GCC (mingw) and also set it as the default compiler. After that this system error stopped popping up every time I started the project.

The reason I posted this answer is because it answers the OP's question and other people with the same question may have a similar reason for this irritation, and my personal experience in this matter may prove useful to those people.

2

If you did not find this file in your installation directory, and then went to the site [Click here] to download the file, and then extract it to your installation directory.enjoy:-)

Tarrex
  • 29
  • 4
1

Caution - removing stuff from your path can compromise your system!

Interestingly, you not only need to add the MinGW bin to your Path, but also you need to make sure that certain things are not on your path*. In my case, I saved my entire path variable as a backup, deleted everything non-system from my path except for MinGW and CMake, leaving:

C:\MinGW\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files (x86)\CMake\bin

You should use the appropriate elements from your system path.

I first tried to do this with a batch job that launched CMake, but it seems that the CMake GUI was reaching back and grabbing the System 'Path' variable instead of the command prompt 'Path' variable, which I had printed and confirmed was as listed above before launching CMake.

Incidentally, I backed up the entire Windows VM before starting!

* For instance: various references, including known issues, mention sh.exe. I inherited this VM from my client and hacked it up further, so it's easier for me to use a clean path for my cross-compiling task and return afterward...

sage
  • 4,863
  • 2
  • 44
  • 47
0

In just installed MinGW using the mingw-get-setup.exe v0.6.2beta-20131004-1 installer. Even though during the install I selected the gcc package, the installer didn't include the "mingw32-gmp" package, which includes libgmp-10.dll. I had to rerun the installer, chose the "Reinstall" option, and manually select the "mingw32-gmp dev" package.

mdrissel
  • 31
  • 2
  • If you have a new question, please ask it by clicking the [Ask Question](https://stackoverflow.com/questions/ask) button. Include a link to this question if it helps provide context. - [From Review](/review/low-quality-posts/19353683) – BDL Apr 06 '18 at 14:25
  • @BDL I don't think this is a new question. It seems to be a description of how mdrissel solved the issue for his or herself. – ProgrammingLlama Apr 06 '18 at 14:57
-1

If you don't have the permission modifying your global path, you can also change the active directory of your cmd shell.

How to do it (in the cmd shell):

C:\> cd C:\MINGW\bin
C:\MINGW\bin> gpp.exe C:\Users\James\Desktop\Program.cpp

How it doesn't work:

C:\>C:\MINGW\bin\gpp.exe C:\Users\James\Desktop\Program.cpp

Note: you have to change "C:\Users\James\Desktop\Programm.cpp" to wherever your program lays

How it works: windows looks for needed DLLs while in the same directory and if it can't find it there it'll look in the PATH variables (so it will search system32 by default), if you add any missing DLLs to the directory from where you run it, windows looks and uses them (even before it looks in the PATH).

polkovnikov.ph
  • 6,256
  • 6
  • 44
  • 79
tqirby
  • 1
-1

A very simple fix to this problem of having missing driver file/s is to select and copy all the dll files from C:\MinGW\Bin and paste them into your C:\MyPrograms or whereever else your folder for created c++ (.cpp) files are being located.

Kevin
  • 1
-1

Just search google for the dll file and download it. Then paste it into the folder in this path

C:\MinGW\libexec\gcc\mingw32\9.2.0