首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由于缺少libgcc_s_dw2-1.dll,程序无法启动

由于缺少libgcc_s_dw2-1.dll,程序无法启动
EN

Stack Overflow用户
提问于 2011-01-16 07:17:36
回答 17查看 309K关注 0票数 178

我已经用C++创建了一个包含Code::块的简单程序。

如果我从Code::Blocks运行它,它可以正常工作;但是如果我通过双击可执行文件来运行它,则会弹出一个窗口,其中显示以下消息:

程序无法启动,因为您的计算机中缺少libgcc_s_dw2-1.dll。

尝试重新安装程序以解决此问题。

那么,问题出在哪里呢?我要怎么做才能修复它?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2011-01-16 08:38:30

我相信这是MinGW/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++链接器选项。

票数 207
EN

Stack Overflow用户

发布于 2011-12-22 16:52:41

在Eclipse中,您可以在项目属性> C/C++ Build > Settings > MinGW C++ Linker > Misc下找到它

您必须将其添加到顶部的“链接器标志”中,而不能添加到其他位置。那就重建吧。

我发现,即使进行了优化,静态链接的大小也会达到1400kb。与仅仅复制共享的DLL相比,它要大277kb。在UPXing一切之后,它也大了388kb。在这里非常失败/失败。只需包含这些DLL,因为如果他们在其他地方安装了这些DLL,最终用户可以决定是否删除它们。

票数 36
EN

Stack Overflow用户

发布于 2013-01-21 01:10:27

代码::块:在设置->编译器->链接器设置->其他链接器选项中添加'-static‘。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4702732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档