2011-02-13 70 views
26

Possible Duplicate:
The program can't start because libgcc_s_dw2-1.dll is missing程序無法找到libgcc_s_dw2-1.dll

我使用的代碼::塊和MinGW 4.4(我認爲)編譯器創建一個C++項目。我得到這個系統錯誤,如果我從它的目錄運行它,而不是從Code :: Blocks內運行。

The program can't start because libgcc_s_dw2-1.dll is missing from your computer. Try reinstalling the program to fix this problem. 

this post hardmath說加-static-libgcc到編譯器標誌,鏈接到DLL靜態。當我嘗試這個時,錯誤仍然發生。我可以通過將MinGW bin目錄添加到我的計算機的Path變量中來實現它,但我計劃通過Internet分發我的程序。

該問題僅在更新到最新的G ++編譯器後出現。除了我以外,這個解決方案爲其他人工作的原因是什麼?

+0

如果程序是C++,那麼錯誤信息可能表明您使用了C++標準庫中的某些東西。建議的另一個鏈接器選項是「-static-libstdC++」。檢查你是否已經添加了該選項。 – hardmath 2011-02-13 19:21:43

+0

@hardmath:我用過。我認爲這是來自C++標準庫。當我嘗試時,我正在使用`-static-libstdC++`,但解決方案實際上只是`-static`,如下面的@rubenvb所示。感謝您花時間幫助我。 – 2011-02-13 19:25:28

回答

46

鏈接命令行參數-static-libgcc應該工作。你可以嘗試的另一個變種是普通的-static

如果你不想擔心這個問題,並且仍然想要重新分配你的二進制文件,只需從MinGW的bin目錄複製相關的dll文件,並將它放在你的可執行文件中。這是常見的做法,並按照廣告的方式工作。