我编写的程序使用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++'
。很抱歉没有澄清我已经读过这个。谢谢!
答案 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"]
后一个讨论包括-static-libgcc
和-static-libstdc++
个链接器选项。
答案 1 :(得分:3)
该文件使用DWARF信息实现异常处理(新样式,而不是setjump / longjump或SJLj,旧样式。
因此,只有当您的代码依赖于任何类型的异常时,您才需要它。
如果您感到幸运,可以从here获取此文件的编辑。