我在哪里可以获得libgcc_s_dw2-1.dll?

时间:2012-02-17 14:44:03

标签: c++ windows-7 dll tdm-mingw

我编写的程序使用SFML但在运行时失败,因为缺少libgcc_s_dw2-1.dll。我正在使用tdm-gcc,无法在我的计算机上的任何地方找到该文件,重新安装没有帮助,一个简单的hello world programm工作正常,所以我不确定为什么它需要这个dll。

可以找到哪个mingw包?我在网站上搜索过,但无法找到它。抱歉,如果我错过了一个明显的搜索结果,但这令人非常沮丧!先谢谢你,

P.S。我顺便说一句是64位Windows 7

编辑:抱歉,我忘了提及我已经阅读another question的答案有同样的问题,但正如我所说,我无法在我的计算机上找到该文件,bin目录或其他。此外,将-static-libgcc-static-libstdc++传递给编译器和/或链接器会给我unrecognized option '-static-libstdc++'。很抱歉没有澄清我已经读过这个。谢谢!

2 个答案:

答案 0 :(得分:4)

我认为这是一个tdm / gcc编译器问题,而不是Microsoft Visual Studio设置。

libgcc_s_dw2-1.dll应该在编译器的bin目录中。您可以将此目录添加到PATH环境变量以进行运行时链接,也可以通过在编译器标志中添加“-static-libgcc -static-libstdc ++”来避免此问题。

如果您计划分发可执行文件,后者可能最有意义。如果您只打算在自己的机器上运行它,那么更改PATH环境变量是一个很有吸引力的选择(保持可执行文件的大小)。

<强>更新

根据Greg Treleaven的反馈(见下面的评论),我正在添加以下链接:

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

[GNU gcc link options]

后一个讨论包括-static-libgcc-static-libstdc++个链接器选项。

答案 1 :(得分:3)

该文件使用DWARF信息实现异常处理(新样式,而不是setjump / longjump或SJLj,旧样式。

因此,只有当您的代码依赖于任何类型的异常时,您才需要它。

如果您感到幸运,可以从here获取此文件的编辑。