[英]Entry Point Not Found Error on running c++ .exe file after compiling with mingw g++
[英]C++ Procedure Entry Point Not Found with MinGW
我刚开始学习 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
如libwinpthread-1.dll
)。 它们包含标准的 C++ 库,例如std::string
和朋友。
执行后,您的二进制文件将在特定位置查找这些 DLL。 通常错误是关于缺少 DLL,但在您的情况下,这些 DLL 的错误版本似乎在您不知情的情况下安装在您的计算机上。 (例如 32 位与 64 位)
有两种可能的解决方案:
-static-libgcc -static-libstdc++
传递给链接器,将标准 C++ 库静态链接到您的程序。 这将增加二进制文件的大小,并且每个二进制文件都将包含相同例程的冗余副本。 但是,您将获得一个独立的二进制文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.