【问题标题】:Why is g++ not working?为什么 g++ 不起作用?
【发布时间】:2014-09-24 22:44:35
【问题描述】:

我正在使用 MinGW,每当我尝试从命令行运行 g++ 时,都会出现以下弹出错误:

此应用程序无法启动,因为找不到 libgmp-10.dll。重新安装应用程序可能会解决此问题。

我查了一下,发现MinGW/bin里面其实有一个名为libgmp-10.dll的文件。起初没有,但我下载了文件并将其放在那里。 MinGW/bin 一定不是放置它的正确位置,因为它仍然说找不到文件。

那么我应该把libgmp-10.dll放在哪里?

更新:这是我的PATH 环境变量:

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

这是MinGW的内容:

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

这是在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

【问题讨论】:

    标签: c++ mingw


    【解决方案1】:

    您需要将它放在PATH 环境变量中的某个位置。尝试将它(或它的快捷方式)粘贴在与编译的可执行文件相同的目录中。

    注意:libgmp 由 g++ 使用,而不是您编译的可执行文件。 g++ 需要在 PATH 或当前工作目录中的某处找到 libgmp。把它放在这两个地方之一,编译器就可以工作了。

    更新:您缺少几个 DLL,这被称为“DLL Hell”。解决此问题的唯一真正方法是按照说明进行完全重新安装。

    【讨论】:

    • 我是否必须为我制作的每个程序都这样做?
    • “我是否必须对我制作的每个程序都这样做?” 不,您可以设置PATH 以查找特定的共享库安装,系统范围。
    • 文件libgmp 像我说的那样在MinGW/bin 中,MinGW/binPATH 环境变量中,但我仍然遇到同样的错误。当我将文件放在同一个工作目录中但文件名称不同时,我得到了同样的错误:libgcc_s_dw2-1.dll
    • @templateboy libgcc_s 是一个不同的库,你有一个问题,你同时缺少几个 dll。这被称为“DLL Hell”,摆脱它的方法是按照说明进行完全重新安装。
    • @randomusername 我之前卸载并重新安装了两次,但我得到了同样的错误。也许我做得不对:我将 MinGW 目录移到了垃圾箱中,然后将其从垃圾箱中删除。然后我去一个站点获取安装程序并再次下载所有内容。但它仍然不起作用。那是正确的方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2022-01-08
    • 2021-04-12
    相关资源
    最近更新 更多