template boy
template boy

Reputation: 10480

Why is g++ not working?

I am using MinGW and whenever I try to run g++ from the command line I get this pop up error:

This application has failed to start because libgmp-10.dll was not found. Re-installing the application may fix this problem.

I checked and I found that there is in fact a file named libgmp-10.dll inside MinGW/bin. At first there wasn't but I downloaded the file and placed it in there. MinGW/bin must not be the correct place to put it because it still says that it cannot find the file.

So where do I place libgmp-10.dll?

Update: This is my PATH environment variable:

C:\MinGW\bin:
/c/Program Files/Vim/vim74:
/c/Program Files/Haskell/bin:
/c/Program Files/Haskell Platform/2013.2.0.0/lib/extralibs/bin:
/c/Program Files/Haskell Platform/2013.2.0.0/bin:
/c/WINDOWS/system32:
/c/WINDOWS:
/c/WINDOWS/System32/Wbem:
/c/Program Files/QuickTime/QTSystem/:
/c/Program Files/TortoiseHg/:
/c/Program Files/Haskell Platform/2013.2.0.0/mingw/bin:
/c/Program Files/nodejs/:
/c/sbcl:
/c/emacs/bin:
/c/Documents and Settings/[my name]/Application Data/cabal/bin:
/c/Documents and Settings/[my name]/Application Data/npm:
.f

This is the contents of MinGW:

/MinGW
    /bin
    /include
    /libexec
    /msys
    /var
    /doc
    /lib
    /mingw32
    /share

This is inside MinGW/bin:

aclocal          autoreconf-2.68  ld.exe                    msgcat.exe
aclocal-1.10     autoscan         libcharset-1.dll          msgcmp.exe
aclocal-1.11     autoscan-2.13    libexpat-1.dll            msgcomm.exe
aclocal-1.4      autoscan-2.68    libgcc_s_dw2-1.dll        msgconv.exe
aclocal-1.5      autoupdate       libgettextlib-0-18-3.dll  msgen.exe
aclocal-1.6      autoupdate-2.13  libgettextpo-0.dll        msgexec.exe
aclocal-1.7      autoupdate-2.68  libgettextsrc-0-18-3.dll  msgfilter.exe
aclocal-1.8      c++.exe          libgmp-10.dll             msgfmt.exe
aclocal-1.9      c++filt.exe      libgmpxx-4.dll            msggrep.exe
addr2line.exe    cc.exe           libgomp-1.dll             msginit.exe
ar.exe           cpp.exe          libiconv-2.dll            msgmerge.exe
as.exe           dlltool.exe      libintl-8.dll             msgunfmt.exe
autoconf         dllwrap.exe      libltdl-7.dll             msguniq.exe
autoconf-2.13    elfedit.exe      libmpc-3.dll              ngettext.exe
autoconf-2.68    envsubst.exe     libmpfr-4.dll             nm.exe
autoheader       g++.exe          libquadmath-0.dll         objcopy.exe
autoheader-2.13  gcc-ar.exe       libssp-0.dll              objdump.exe
autoheader-2.68  gcc-nm.exe       libstdc++-6.dll           pthreadGC2.dll
autom4te         gcc-ranlib.exe   libtool                   pthreadGCE2.dll
autom4te-2.68    gcc.exe          libtoolize                ranlib.exe
automake         gcov.exe         mingw-get.exe             readelf.exe
automake-1.10    gdb.exe          mingw32-c++.exe           recode-sr-latin.exe
automake-1.11    gdbserver.exe    mingw32-cc.exe            size.exe
automake-1.4     gettext.exe      mingw32-g++.exe           strings.exe
automake-1.5     gettext.sh       mingw32-gcc-4.8.1.exe     strip.exe
automake-1.6     gettextize       mingw32-gcc-ar.exe        windmc.exe
automake-1.7     gprof.exe        mingw32-gcc-nm.exe        windres.exe
automake-1.8     iconv.exe        mingw32-gcc-ranlib.exe    xgettext.exe
automake-1.9     ifnames          mingw32-gcc.exe           zlib1.dll
autopoint        ifnames-2.13     mingw32-make.exe
autoreconf       ifnames-2.68     mingwm10.dll
autoreconf-2.13  ld.bfd.exe       msgattrib.exe

Upvotes: 0

Views: 7636

Answers (1)

randomusername
randomusername

Reputation: 8105

You need to place it somewhere in your PATH environment variable. Try sticking it (or a shortcut to it) in the same directory as your compiled executable.

Note: libgmp is used by g++, not your compiled executable. g++ needs to find libgmp somewhere in your PATH or in the current working directory. Place it in one of those two places and the compiler will work.

Update: You are missing several DLLs, this is called "DLL Hell". The only real way to get around this is by following the instructions and doing a complete reinstall.

Upvotes: 1

Related Questions