【问题标题】:libstc++-6.dll was not found未找到 libstc++-6.dll
【发布时间】:2020-09-09 18:48:45
【问题描述】:

语言:C++ IDE:代码::块 编译器:GNU GCC 操作系统:Windows

我正在尝试创建一个可执行文件。当我转到可执行文件并尝试打开它时,它说“代码执行无法继续,因为找不到 libstc++-6.dll。重新安装此程序可能会解决此问题。”问题是当我在我的 IDE 中运行代码时它可以工作,但当我尝试双击可执行文件本身时就不行。

我做了一些实验并想出了这个:

1:这个问题只有在我使用 iostream 库时才会出现。 2:我查看了编译器的目录,确实有libstc++-6.dll。

这个问题困扰了我一段时间,我不知道如何解决它...... 任何帮助表示赞赏。谢谢!

编辑:我不知道如何静态链接它,如果那是一个词。所以我所做的是将三个库复制并粘贴到与我的 exe 相同的目录中,并且它起作用了。这些库是我的编译器告诉我丢失的库。谢谢大家!

【问题讨论】:

  • 除非您的路径设置另有说明,否则您需要将 libstc++-6.dll 与您的可执行文件放在同一目录中。
  • 您的应用程序运行情况如何?您是在 Windows 资源管理器中双击它,从命令提示符运行它(如果是,从哪个目录?),使用 Win+R“运行程序”提示符,还是以其他方式启动它?
  • 不同之处在于从 IDE 运行代码将使用编译器运行时的文件夹填充 windows PATH 环境变量,而在 windows 中单击可执行文件时不会出现此类行为。您可以在 windows 中进入您的环境变量并添加一个条目或将所需的 dll 复制到与可执行文件相同的位置,
  • 一种可能的替代方法:使用-static 链接器选项静态链接标准库。可执行文件会更大,但您不再需要 dll。

标签: c++ executable


【解决方案1】:

基于libstdc++-6.dll not found,问题似乎在于您的可执行文件与dll 不在同一目录中,因此请将dll 文件复制到您的可执行文件所在的目录,或者更好:使用链接库的静态选项,无需为每个可执行文件复制dll

【讨论】:

  • 静态链接可能会解决这个问题,但这并不是比使用动态链接普遍“更好”的解决方案。
  • hmmmm 我现在做了它说 libwinpthread-1.dll not found...
  • @JesperJuhl 也许不是普遍更好 - 我只是暗示在他们的特定情况下它可能比每次制作新的可执行文件时复制 dll 更好。显然对于其他情况(例如,在具有许多不同项目和依赖项的复杂代码库中),动态链接会更好。但对于个人或小型项目,静态链接有好处。
  • @fartgeek 听起来您需要找到该 dll 并将其复制过来。或者,如果您采用静态链接方法,则可能需要将该 winpthread dll 所在的位置添加到您的 PATH 中。见:stackoverflow.com/questions/28907304/…
猜你喜欢
  • 2011-09-18
  • 2021-12-25
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多