ita*_*eif 6 c++ mingw libstdc++
我刚刚开始学习 C++ 课程,并使用 MinGW 进行编译(我开始做 K&R,所以已经为 C 设置了它)。每当我编译包含或使用任何库的文件时,都会出现以下错误:
“程序入口点...(这只是一个看起来很长的打乱的东西)无法位于动态链接库中...(我正在编译的文件的路径)”
谷歌搜索后,我尝试将 libstdc++-6.dll 放在 C:\Windows\System32 中,将 C:\MinGW\bin 作为 PATH 中的第一优先级,并将 libstdc++-6.dll 放在与 .cpp 文件相同的文件夹中我正在编译。
唯一的解决方案是将其复制到我正在编译的 .cpp 文件的文件夹中,但我希望避免以后每次都这样做。
先谢谢您的帮助!
使用 MinGW 构建时,生成的二进制文件将需要libstdc++-6.dll(以及其他一些类似的libwinpthread-1.dll)。它们包含标准 C++ 库,例如std::string和 朋友。
执行后,您的二进制文件将在特定位置查找这些 DLL。通常,该错误与缺少 DLL 相关,但在您的情况下,这些 DLL 的错误版本似乎在您不知情的情况下安装在您计算机上的某个位置。(例如 32 位与 64 位)
有两种可能的解决方案:
-static-libgcc -static-libstdc++这将增加二进制文件的大小,并且每个二进制文件将包含相同例程的冗余副本。但是,您将获得一个独立的二进制文件。