繁体   English   中英

使用 MinGW 找不到 C++ 过程入口点

[英]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.dlllibwinpthread-1.dll )。 它们包含标准的 C++ 库,例如std::string和朋友。

执行后,您的二进制文件将在特定位置查找这些 DLL。 通常错误是关于缺少 DLL,但在您的情况下,这些 DLL 的错误版本似乎在您不知情的情况下安装在您的计算机上。 (例如 32 位与 64 位)

有两种可能的解决方案:

  • 找到您的 MinGW 工具链附带的正确 DLL并将它们放在本地目录中 (本地目录是可执行文件搜索 DLL 的第一个位置。)您必须随构建一起提供它们的副本。
  • 通过将-static-libgcc -static-libstdc++传递给链接器,将标准 C++ 库静态链接到您的程序。 这将增加二进制文件的大小,并且每个二进制文件都将包含相同例程的冗余副本。 但是,您将获得一个独立的二进制文件。

暂无
暂无

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

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