2012-02-17 59 views
5

我寫的程序使用SFML,但運行失敗,因爲缺少libgcc_s_dw2-1.dll。我正在使用tdm-gcc並且無法在我的計算機上的任何位置找到該文件,並且重新安裝並沒有幫助,而且簡單的hello world programm工作正常,所以我不確定它爲什麼需要此dll。我在哪裏可以獲取libgcc_s_dw2-1.dll?

哪個mingw包可以在這裏找到?我在網站上搜索過,但無法找到它。道歉,如果我剛剛錯過了一個明顯的搜索結果,但這令人難以置信的令人沮喪!在此先感謝,埃爾。

P.S.我在64位Windows 7上的方式

編輯:對不起,我忘了提及我已經閱讀another question與同樣的問題的答案,但正如我所說,我無法找到我的任何地方的文件電腦,在bin目錄或其他。另外,將-static-libgcc-static-libstdc++傳遞給編譯器和/或連接器給我unrecognized option '-static-libstdc++'。對不起,我沒有說明我已經閱讀過。謝謝!

回答

3

該文件實現了異常使用DWARF信息(新的風格,與setjump /跳遠踏板或SJLj,舊式的處理。

所以,你需要它只有在你的代碼依賴於任何類型的異常。

如果你感到幸運,你可以從here搶我自己對這個文件的編譯。

+0

謝謝你!知道你從哪裏得到'.dll'? – Ell 2012-02-18 13:01:40

+0

@Ell - 其實我是從源頭編譯完整的MinGW!從Ubuntu盒子交叉編譯。棘手的任務,非常有教育意義。我一直在想寫關於它的博客文章,但從來沒有得到足夠的決心...... – rodrigo 2012-02-18 18:00:14

+0

哇,這聽起來很棘手!如果你最終寫了一篇關於它的博客文章,請告訴我,這樣我就可以做到! – Ell 2012-02-18 21:38:51

4

我相信這是一個tdm/gcc編譯器問題,而不是Microsoft Visual Studio安裝程序。

libgcc_s_dw2-1.dll應該在編譯器的bin目錄中。您可以將此目錄添加到PATH環境變量以用於運行時鏈接,或者通過向編譯器標誌添加「-static-libgcc -static-libstdC++」來避免此問題。

如果您打算分發可執行文件,後者可能是最有意義的。如果您只打算在自己的機器上運行它,那麼更改PATH環境變量是一個有吸引力的選擇(保持可執行文件的大小)。

更新:基於格雷格Treleaven(見下面的評論),我添加鏈接反饋

[Screenshot of Code::Blocks "Project build options"]

[GNU gcc link options]

後者討論包括-static-libgcc-static-libstdc++鏈接器選項。

+0

我想鏈接到的其他問題不僅僅是複製和粘貼,尤其是當編輯是基於沒有被做了評論更合適不管怎麼樣,謝謝你 – Ell 2012-02-17 15:09:12

相關問題