Answers:
我相信这是MinGW / gcc编译器问题,而不是Microsoft Visual Studio安装程序。
本libgcc_s_dw2-1.dll
应在编译器的bin目录。您可以将此目录添加到PATH环境变量中以进行运行时链接,也可以通过在编译器标志中添加“ -static-libgcc -static-libstdc ++”来避免该问题。
如果计划分发可执行文件,则后者可能最有意义。如果仅打算在自己的计算机上运行它,则更改PATH环境变量是一个很吸引人的选择(减小可执行文件的大小)。
更新:
根据格雷格·特雷文(Greg Treleaven)的反馈(请参阅下面的评论),我添加了以下链接:
[Code :: Block的屏幕截图阻止了“项目构建选项”]
后面的讨论包括-static-libgcc
和-static-libstdc++
链接器选项。
在Eclipse中,您可以在项目属性> C / C ++ Build>设置> MinGW C ++ Linker>其他下找到它
您必须将其添加到顶部的“链接器标志”中。无处。然后重新构建。
我发现,即使进行了优化,将这些链接静态链接也可以使最大扩展为1400kb。与仅通过共享DLL复制相比,它大了277kb。UPXing所有内容后,它也增大了388kb。这里很失落。只要将DLL包含在内,最终用户就可以决定是否将其删除(如果它们已在其他位置安装了它们)。
代码::块:在设置->编译器->链接器设置->其他链接器选项中添加“ -static”。
在您的PC上找到该dll,然后将其复制到可执行文件所在的目录中。
看到 也。它解决了我的问题。
顺便说一句,肯定是compiler
旗帜吗?也许linker
这里更合适?
转到MinGW http sourceforge.net树。在Home / MinGW / Base / gcc / Version4(或使用的任何版本)/ gcc-4(version)/下,您会找到一个文件,如gcc-core-4.8.1-4-mingw32-dll.tar.lzma 。将其解压缩并进入bin文件夹,您将在其中找到libgcc_s_dw2-1.dll和其他dll。将所需的内容复制并粘贴到bin目录中。
您不能将其放在system32或类似的其他dll文件中,以便您尝试运行的每个程序都不会在您的计算机上出现该问题吗?
我只需要放置它的路径。
每当我运行刚构建的程序时,将其放入目录中就有点烦人了。
编辑:我找到了解决方案:
将libgcc_s_dw2-1.dll解压缩到计算机上的某个位置。我们建议您将其解压缩到请求libgcc_s_dw2-1.dll的程序的目录中。
如果这样不起作用,则必须将libgcc_s_dw2-1.dll解压缩到系统目录中。默认情况下,这是:
- C:\ Windows \ System(Windows 95/98 / Me)
- C:\ WINNT \ System32(Windows NT / 2000)
- C:\ Windows \ System32(Windows XP,Vista,7)
如果使用Windows的64位版本,则还应将libgcc_s_dw2-1.dll放在C:\ Windows \ SysWOW64 \
确保覆盖所有现有文件(但要备份原始文件)。重新启动计算机。
如果问题仍然存在,请尝试以下操作:
- 打开Windows“开始”菜单,然后选择“运行...”。
- 键入CMD并按Enter(或者,如果您使用Windows ME,则键入COMMAND)。
- 键入regsvr32 libgcc_s_dw2-1.dll,然后按Enter。
将该dll的路径添加到PATH环境变量中。
将“ -static”添加到其他链接器选项可解决此问题。在另一个系统上进行测试后,我只是遇到了相同的问题,但不是我一个人,所以即使您在开发系统上没有注意到此问题,也应该检查是否已设置了此集合(如果您进行静态链接)。
另请注意,将DLL复制到与可执行文件相同的文件夹中不是解决方案,因为它破坏了静态链接的想法。
另一种选择是使用MinGW的TDM版本来解决此问题。
更新编辑:这可能无法解决所有人的问题。我最近发现的另一个原因是,当您使用别人编译的库时,在我的情况下是SFML,编译不当,因此需要一个不存在的DLL,因为它是用不同于我的MinGW版本编译的用。我使用了一个矮小的构建,这个使用了另一个构建,所以我在任何地方都没有DLL,当然,我也不想要它,因为它是静态构建。解决方案可能是找到该库的另一个版本,或者自己构建。
使用msys2时,在调试环境中尝试执行项目的发行版时遇到了相同的错误。我的问题的解决方案很明显:将可执行文件与调试符号一起使用。
如果您想知道可以在哪里下载共享库(尽管除非包含dll,否则这在您的客户端设备上将不起作用),这里是链接:https : //de.osdn.net/projects/mingw/downloads/72215/ libgcc-9.2.0-1-mingw32-dll-1.tar.xz /