【问题标题】:Program can't start because *.dll is missing - MinGW, Eclipse, Windows 7程序无法启动,因为缺少 *.dll - MinGW、Eclipse、Windows 7
【发布时间】:2011-10-10 16:42:09
【问题描述】:

我很清楚这个板上已经出现了许多类似的问题,但是没有一个解决方案对我有帮助。

我正在尝试让 Eclipse CDT 在 Windows 7 Service Pack 1 上与 MinGW 工具链一起运行。我已经在 Windows XP 上这样做了,并认为相同的过程可以让它在 Windows 7 上顺利运行,但似乎我错了; )

从自动安装程序安装 MinGW 后(以防我安装了一些超出我需要的东西)并将 C:/MinGW/bin 添加到我的 PATH 环境变量中,我尝试编译一个简单的 Hello, World!程序。 Eclipse 没有给我任何错误,但它不想在控制台窗口中给出任何输出。惊慌,我试图在 Eclipse 之外运行可执行文件并得到了错误

“程序无法启动,因为缺少 libstdc++-6.dll”。

奇怪的是,这个 dll 位于 C:/minGW/bin 目录中,因此 PATH 变量应该“找到”它 - 但它没有。将 dll 复制到带有可执行文件的目录有帮助,但这显然是一个短期的解决方案,我希望有一个更“正常”的解决方案。

我认为,使我的问题与我在此板上注意到的其他问题不同的是,Eclipse 没有发现我的 PATH 变量有任何错误(如果MinGW 不包含在 Path 变量或其他东西中),除了所需的 dll 是它们应该在的地方,但似乎我的 Windows 找不到它们。

【问题讨论】:

  • 我假设您已经检查过它是否是“真实”文件而不是符号链接?
  • 它们是真正的 *.dll 文件——正如我所说,将它们复制到带有可执行文件的文件夹中就可以了,但我寻求一种更“优雅”的解决方案,并且独立于程序所在的机器继续跑。
  • 只是出于好奇,您是否注销并重新登录。我们之前遇到过这个问题,注销/登录有帮助
  • 我试过重启几次...
  • 要查看程序需要的 DLL,您可以使用 dependencywalker.com

标签: c++ eclipse mingw


【解决方案1】:

“真正的”解决方案确实是在本地复制 DLL。运送 EXE 时,您必须运送该 dll。

【讨论】:

  • 嗯,这似乎是不必要的复杂。此外,我在 Windows 7 上看到了 Eclipse 的实现,它运行完美,没有任何类似的恶作剧——因此,我的有什么问题?
  • 你可以将 -static 传递给 gcc。
  • 用外行的话来说,这意味着...?我在 Eclipse 的什么地方做这个?
  • 表示静态链接程序,将DLL放在EXE中。
猜你喜欢
  • 2011-10-08
  • 2011-08-01
  • 2012-01-03
  • 2019-03-21
  • 2011-06-09
  • 2017-09-04
  • 2016-01-13
  • 2011-03-26
  • 2014-07-10
相关资源
最近更新 更多