【问题标题】:C++ Program Won't Run From Windows ConsoleC++ 程序不会从 Windows 控制台运行
【发布时间】:2020-10-20 20:37:11
【问题描述】:

我正在学习 C++,并且我已经完成了一个基本的 Hello World 程序。该程序在我的 IDE 中运行良好,但我无法从我的 Windows 控制台运行它。

我正在使用 MinGW 编译器。

我已经将它添加到我的路径中。

我使用的是 Windows 10。

我正在使用 Eclipse IDE。

当我尝试运行我的程序时,我得到了错误

The code execution cannot proceed because libgcc_s_dw2-1.dll was not found. Reinstalling the 
program may fix this problem.

我仔细检查了 MinGW 中的 bin 文件夹,它确实有 libgcc_s_dw2-1.dll 文件。而且,正如我所说,MinGW 已设置为我的路径。

我知道已经有这样的问题,但这些解决方案对我没有帮助。任何帮助将非常感激。谢谢。

编辑:我的编译器 bin 目录已添加到我的路径中。

【问题讨论】:

  • 从控制台检查路径,输入命令path 并检查包含该dll的文件夹是否已列出。
  • 摆脱 mingw、eclipse 以及通常所有移植到 Windows 的 *nix 开发工具都已过时,它们只会造成不必要的麻烦,除非有使用它们的理由,否则应避免使用它们(例如,开发跨平台应用程序)。
  • 此错误表明缺少可再发行包。
  • @MichaelChourdakis 这有什么不好?提供最新版本的常用工具(最新的 GCC、Clang、make 等等)。
  • 你肯定选择了一条艰难的道路。具有桌面 C++ 工作负载配置的 MSVC 2019 可以开箱即用。话虽如此,看看here

标签: c++ windows eclipse mingw


【解决方案1】:

我仔细检查了 MinGW 中的 bin 文件夹,它确实有 libgcc_s_dw2-1.dll 文件。

将您的编译器bin 目录添加到PATH

将此.dll 复制到您的.exe 所在的目录。你必须为libstdc++….dlllibwinpthreads….dll 做同样的事情。

请注意,如果您决定将您的 .exe 分发给其他人,则必须将这些 .dlls 与它一起分发。一般来说,您可以使用ntldd 或类似的工具来确定您的程序依赖于哪个.dlls。

【讨论】:

  • 嗨@HolyBlackCat,我的编译器binPATH 已经有了,但我仍然遇到这个问题。不过,有趣的是,我在编译器的 bin 目录中没有看到 libwinpthreads... .dll。这可能是导致问题的原因吗?
  • @Andrew 如果没有libwinpthreads,那么你就不需要它;您的程序默认使用的特定 dll 取决于 MinGW 发行版。有可能在C:\Windows/C:\Windows\System32 中存在一些不兼容的libgcc_s_dw2-1.dll(在这种情况下删除它,它不应该存在),或者在PATH 中的一个目录中(在这种情况下)从PATH 中删除有问题的目录)。或者你可以复制 dll,就像我说的那样。
猜你喜欢
  • 2013-06-10
  • 2014-10-09
  • 1970-01-01
  • 2019-11-30
  • 2010-11-19
  • 1970-01-01
  • 2017-06-19
  • 2011-12-08
  • 1970-01-01
相关资源
最近更新 更多