2011-08-05 44 views
45

我最近在我的64位Windows 7的計算機上安裝MinGW和我嘗試編譯最基本的C++程序,例如libgmp-10.dll缺失

#include<iostream> 

using namespace std; 

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

我得到的錯誤「程序無法啓動,因爲libgmp-10.dll從您的計算機中丟失。「

回答

72

您是否嘗試將c:/ MinGW/bin添加到Windows系統路徑(不是PATH)?

我看到這個頁面上此解決方案:Missing libgmp-10.dll

+1

非常好!有用。非常感謝你。 – neofu50

+4

重新設置路徑後重新啓動'cmake-gui'。沒有重新啓動,它不適用於我。 – Jayesh

+0

工作。謝謝! – jdsantiagojr

2

如果你沒有找到你的安裝目錄中找到此文件,然後親臨現場[點擊here]下載的文件,然後將其解壓到你安裝directory.enjoy :-)

5

轉到mingw download page和瀏覽以下目錄:

MinGW/Base/gmp/gmp-5.0.1-1

目前你結束了通過以下鏈接:
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
它包含所需的文件。

我知道有安裝mingw gcc的自動化方法,但是當使用單個mingw包時,gmp是強制性下載之一。

+2

我剛剛建立了一個新的MinGW安裝,並且已經安裝了'gmp'(gmp-dev,gmp-doc,gmp-lic,libgmp),但是我仍然有這個問題。 –

+0

我下載後將文件放在哪裏? – 0x499602D2

+0

zip包的根目錄應該放到你的mingw文件系統的根目錄下。 – Jarekczek

4

添加

c:/MinGW/bin to PATH

並重新啓動CMake的貴

工作對我來說

+1

您可以將此添加爲評論。 –

3

我來到後,當我開始的代碼塊,然後點擊我的項目這個問題。該項目的筆記出現了,我按確定後,出現錯誤:

「系統錯誤:程序無法啓動,因爲libgmp-10.dll從您的計算機中缺少 請重新安裝應用程序來解決這個問題。 「

我認爲一堆,然後能夠做正常的編譯,鏈接等,但每次我啓動C :: B並出現該項目時,出現錯誤。然後我注意到LLVM Clang編譯器是我在編譯器設置中的默認編譯器,但GCC被設置爲特定於我正在編寫的項目的編譯器。

解決方案是在編譯器設置中將編譯器設置爲GCC(mingw),並將其設置爲默認編譯器。之後,每次啓動項目時都會彈出此係統錯誤。

我發佈這個答案的原因是因爲它回答了OP的問題,並且其他具有相同問題的人可能也有類似的原因,我對此事的個人經驗可能對這些人有用。

+0

當我使用多個編譯器時,這確實是一個問題。我需要在打開項目之前更改默認編譯器並重新啓動代碼塊 –

1

小心 - 從您的路徑中刪除東西可能會危及您的系統!有趣的是,您不僅需要將MinGW bin添加到路徑中,還需要確保某些東西不在您的路徑*上。就我而言,我救了我的整個路徑變量作爲備份,刪除一切從我的道路,除了MinGW和CMake的非系統,離開:

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

你應該從系統路徑使用適當的元素。

我首先嚐試使用啓動CMake的批處理作業來做到這一點,但似乎CMake GUI已經回到並且抓住系統'路徑'變量而不是我打印的命令提示'路徑'變量並在啓動CMake之前確認如上所列。

順便說一下,我在開始之前備份了整個Windows VM!

*例如:各種參考文獻,包括known issues,都提到sh.exe。我從客戶端繼承了這個虛擬機,並且進一步入侵了它,所以我更容易爲我的交叉編譯任務使用乾淨的路徑,並在之後返回...

-1

如果您沒有權限修改您的全局路徑,您還可以更改cmd shell的活動目錄。

如何做到這一點(在cmd殼):

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

它是如何不起作用:

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

注意:你必須改變「C:\用戶\詹姆斯\ Desktop \ Programm.cpp「到你的程序所在的任何地方

工作原理:windows在相同的目錄中查找所需的DLL,如果在那裏找不到,它會查找PATH變量(所以它會默認搜索system32),如果將任何缺少的DLL添加到運行它的目錄中,則Windows會查找並使用它們(甚至在它看起來在PATH之前)。

-1

一個非常簡單的修復具有丟失的驅動程序文件的這個問題/ s是對選擇和複製C所有的dll文件:\ MinGW的\ bin並他們進入你的C:\ MyPrograms或徘徊無論別人您正在查找創建的C++(.cpp)文件的文件夾。