使用Windows 8、SFML和CodeBlocks编程时出现编译错误

3
尝试选择一个2D库,我选择了SFML。但是,我无法正确链接它。当我尝试构建和运行它时,我收到以下错误信息:动态链接库sfml-graphics-d-2.dll中找不到gxx personality v0过程入口点。IDE是Code::Blocks 12.11,编译器是MinGW(默认)。我已将库提取到c:\SFML-2.0。我设置了编译器搜索目录:C:\SFML-2.0\include和链接器:C:\SFML-2.0\lib。在我开始的项目中,我在链接器设置中添加了链接库。
Debug:
sfml-graphics-d
sfml-window-d
sfml-system-d

Release:
sfml-graphics
sfml-window
sfml-system

我还从C:\sfml-2.0\bin复制了dll文件到项目的位置。

我尝试使用静态链接但没有成功。看了一些SFML教程并跟随它们,搜索了一下但似乎都不适用于我。还重新安装了Code::Blocks。

有什么好的想法吗?

2个回答

2
您需要使用正确的SFML软件包。出现gxx_personality_v0错误通常表示运行时库不匹配。如果您真正使用Code::Blocks 12.11和他们提供的编译器,则将拥有TDM 4.7.1编译器,该编译器使用SJJL异常模型。因此,SFML下载页面中匹配的编译器是GCC 4.7 TDM(SJLJ)-32位
请记住,还有一个更新的Code:: Blocks版本(13.12),它使用更新的TDM版本,但SFML没有提供二进制/预编译包,因此您必须自己构建SFML。 虽然TDM编译器很容易安装,但我不建议使用它,因为它破坏了使用类似GCC的编译器的标准方式。相反,您可能需要查看Stephan T.Lavavej在nuwen.net上的版本或选择MinGW Builds - 您需要重新编译SFML。

不客气!如果这解决了您的问题,如果您将该帖子标记为答案,对其他人也会有所帮助。 :) - Lukas

0
如果你仍然遇到错误,我通过以下方式解决了我的问题:
在编译器设置对话框中: 在左侧菜单中,验证选择了全局编译器设置, 选择工具链可执行文件选项卡, 选择附加路径选项卡, 按下添加按钮,找到SFML的bin文件夹(C:\ CodeBlocks \ sfml \ bin),并添加它而不保留相对路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接