【问题标题】:Where Can I Get libgcc_s_dw2-1.dll?我在哪里可以获得 libgcc_s_dw2-1.dll?
【发布时间】:2012-03-08 23:15:25
【问题描述】:

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

可以在哪个 mingw 包中找到它?我在网站上搜索过,但找不到。如果我错过了一个明显的搜索结果,我深表歉意,但这非常令人沮丧!在此先感谢,呃。

附:顺便说一下,我使用的是 64 位 Windows 7

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果你觉得幸运,你可以从here获取我自己对该文件的编译。

    【讨论】:

    • 谢谢!你知道.dll 是从哪里得到的吗?
    • @Ell - 实际上我自己从源代码编译了整个 MinGW!从 Ubuntu 盒子交叉编译。棘手的任务,而且很有指导意义。我一直在考虑写一篇关于它的博客文章,但一直没有足够的决心......
    • 哇,这听起来很棘手!如果你最终写了一篇关于它的博客文章,请通知我,这样我就可以做到!
    • 不幸的是,这给了我The procedure entry point __gxx_personality_v0 could not be located in the dynamic link library libstdc++-6.dll。当我从 pre-build MinGW 复制 dll 时,这是同样的错误。
    • 你可以在mingw-w64-i686-gcc-libs找到相同的文件。
    【解决方案2】:

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

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

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

    更新:

    根据 Greg Treleaven 的反馈(请参阅下面的 cmets),我正在添加以下链接:

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

    [GNU gcc link options]

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

    【讨论】:

    • 我认为链接到另一个问题比仅仅复制和粘贴更合适,特别是如果编辑基于尚未进行的 cmet 存在。不过还是谢谢你
    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多