为什么我得到这个简单的c++代码的过程入口点错误

Why am I getting a procedure entry point error for this simple C++ code?

本文关键字:代码 c++ 过程 入口 错误 简单 为什么      更新时间:2023-10-16

我正在编写一个SFML游戏,当我尝试运行代码时,我得到的错误是:

过程入口点_gxx_personality_v0无法在动态链接库libstdc++-6.dll中找到

我已经正确地链接到所有的库和包含文件是正确的。我甚至尝试了其他的答案建议把libstdc++-6.dll在我的可执行文件的目录,但仍然没有。

另一个答案说把MinGW/bin目录放在PATH环境变量的任何其他目录之前,我也这样做了,但它仍然不起作用。

注意:只有当我尝试使用SFML代码时,我才会得到这个错误。当我把它注释掉时,它运行成功了。

好的,你添加的注释告诉我SFML的东西是用另一个编译器版本/配置编译的,如果内存不够的话,是更新的。

您需要确保SFML和您的代码由相同的编译器(版本/配置)或至少兼容的编译器(版本/配置)编译。

我看到最新的SFML二进制包使用GCC 4.7,而最新的Code::Blocks (mingw)随TDM GCC 4.7构建而来,所以升级Code::Blocks并确保您使用SFML GCC 4.7 TDM (SJLJ)包(当然还要使用Code::Blocks附带的GCC)可能就足够了。

否则,您可能应该手动安装TDM-GCC 4.7编译器,或者如果没有工作,您可以自己编译SFML。

这只是一个PATH排序问题。

很可能在你的路径中加载了多个libstdc++-6.dll文件。您可以通过在命令提示符中运行where libstdc++-6.dll来检查。

你要做的是确保你的MinGW bin文件夹在其他所有东西之前被加载。尝试将其移动到全局PATH中的第一个。