【发布时间】:2014-10-15 13:47:22
【问题描述】:
我不熟悉在 C++ 中链接库的想法,并且正在尝试让 SFML 与 C++ 一起工作。我在 Windows 7 64 位上并且正在使用代码块。我已经下载了 SFML 的 32 位 mingw GCC SFML DW2 版本。我按照本教程:http://www.sfml-dev.org/tutorials/2.0/start-cb.php 设置代码块。我正在静态链接库。当我按下“构建”按钮时,我会收到一大堆错误,其中未定义对“__Unwind_Resume”和“__gxx_personality_v0”的引用。我已经查找了这个问题,并且只找到了使用 g++ 而不是 gcc 的命令行修复程序。我无法在代码块 UI 中执行此操作。有人可以帮帮我吗?
【问题讨论】:
-
我最近才这样做。容易错过的设置部分:“...如果您想摆脱这些 DLL 并将 SFML 直接集成到您的可执行文件中,您必须链接到静态版本。静态 SFML 库具有“-s”后缀:“sfml -xxx-sd”用于调试,“sfml-xxx-s”用于发布。”确保您使用的是那些“...s...”版本。
-
@Conduit 我很确定我做到了。在 Project->Build Options->Linker settings 我有 sfml-graphics-s-d 等用于调试和 sfml-graphics-s 等用于发布。有什么我错过的吗?
-
我唯一能想到的其他事情是添加库的顺序(列表中从第一个到最后一个:音频、网络、图形、窗口、系统)以及编译器设置中对 SFML_STATIC 的定义...
-
OP 是正确的,他必须以某种方式指定他需要使用
g++而不是gcc作为链接器。不过,我不知道 code::blocks 是否足以为您指明正确的方向。 -
不,买 32 位的。
code::blocks附带的编译器是 32 位的,因此它可能不适用于 64 位代码