繁体   English   中英

如何修复我的 c++ 程序中的“找不到 libstdc++-6.dll”错误?

[英]how can i fix "libstdc++-6.dll not found" error in my c++ program?

最近我意识到我的 c++ 程序被检测为病毒,我认为这一定是编译器问题。 所以我卸载了我的编译器并通过msys2重新安装它。 output 在我的系统中没问题,但是当我在虚拟机或其他系统中运行由新编译器创建的 EXE 输出时,出现此错误:找不到 libstdc++-6.dll

我不知道如何解决这个问题。 我很感激任何帮助。

错误图像

有些人称之为 DLL 地狱,但这通常是因为他们并不完全了解共享库如何在 Windows 上工作。

您可以通过使用 linker 标志-static并与必要的依赖项 static 库文件 ( *.a ) 链接来避免 DLL 依赖项。 特别是对于 C++ 标准库libstdc++-6.dll您将需要指定 linker 标志-static-libstdc++

或者您可以使用共享库 ( *.dll ),但是您需要将它们分发到与.exe文件相同的文件夹中。

我编写了一个名为copypedeps的工具,作为https://github.com/brechtsanders/pedeps的一部分来复制.exe文件以及所有必需的.dll文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM