尝试选择一个二维库,SFML 是我的选择。
但是,我无法正确链接它。
当我尝试构建并运行它时,出现以下错误:
程序入口点 gxx personality v0 无法位于动态链接库 sfml-graphics-d-2.dll
顺便说一句,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。
想法?
最佳答案
您需要使用正确的 SFML 包。 gxx_personality_v0
的错误通常表示运行时库不匹配。如果您真的将 Code::Blocks 12.11 与它们附带的编译器一起使用,那么您将拥有使用 SJLJ 异常模型的 TDM 4.7.1 编译器。因此来自 SFML 的匹配编译器 download page将是 GCC 4.7 TDM (SJLJ) - 32 位
。
请记住,有一个更新的 Code::Blocks版本 (13.12),它使用较新版本的 TDM,但 SFML 不为其提供二进制文件/预编译包,因此您必须自己构建 SFML。 虽然 TDM 编译器易于安装,但我不推荐它,因为它打破了使用类 GCC 编译器的标准方式。相反,您可能想看看 Stephan T. Lavavej 在 nuwen.net 上的构建。或者选择 MinGW Builds - 对于每一个你都必须重新编译 SFML。
关于c++ - Windows 8 sfml 和代码块的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152699/