SFML 2.1& “懒符号绑定失败”

时间:2013-07-28 19:13:58

标签: lazy-evaluation sfml symbols dylib

我用g ++编译了我的SFML程序,现在似乎工作正常(之前有问题),但是当我尝试运行结果输出时,我收到以下错误消息:

dyld: lazy symbol binding failed: Symbol not found: __ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE
  Referenced from: /Users/fabricecastel/Work/Game_Projects/SFML_tutorials/./a.out
  Expected in: /usr/local/lib/libsfml-graphics.2.dylib

dyld: Symbol not found: __ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE
  Referenced from: /Users/fabricecastel/Work/Game_Projects/SFML_tutorials/./a.out
  Expected in: /usr/local/lib/libsfml-graphics.2.dylib

Trace/BPT trap: 5

我检查了有问题的文件夹,并且没有丢失libsfml-graphics.2.dylib。除此之外,我完全不知道问题是什么,以及我应该如何修复它。在我看来,RenderWindow符号不包含在dylib中,但它应该是。我们在这里谈的是SFML 2.1,而不是一些模糊的业余项目。怎么了?

1 个答案:

答案 0 :(得分:0)

我可以重现这些错误的唯一方法是GCC and Clang version of SFML混合时。以下是两个产生相同错误的过程。

  • 第一道程序
    1. 安装GCC版本
    2. 编译您的申请(成功)
    3. 安装Clang版本
    4. 运行您的应用程序
  • 第二个程序
    1. 安装Clang版本
    2. 编译您的申请(成功)
    3. 安装GCC版本
    4. 运行您的应用程序

当您安装另一个运行时,您需要从头开始仔细地重建您的应用程序。也就是说,在编译之前删除最终的二进制文件以及任何.o文件。