c – 在XCode中构建时出现FreeType错误
首先回顾一下:
我不知道我在做什么. 这是谎言,我知道我在做什么.我是一名网络开发人员,因此查看代码并非全是胡言乱语,但尝试使用Xcode对我来说是一本新书.无论如何,我设计了一个在Windows上使用SFML在C中编译的游戏,现在我们正试图将它带到OS X(我是Mac中唯一的一个组). 使用Xcode 4.6.1和SFML 2.0我一直试图让这个该死的应用程序构建,到目前为止它只是头痛.让这个东西工作的当前状态并不是那么糟糕,它最终构建没有错误,但构建停止,这显示: dyld: Library not loaded: @executable_path/../Frameworks/freetype.framework/ Versions/A/freetype Referenced from: /Users/Eric/Library/Developer/Xcode/DerivedData/ Test-haconqzbewevbwgukppsacykkpml/Build/Products/Debug/Test.app/ Contents/Frameworks/sfml-graphics.framework/Versions/2.0.0/sfml-graphics Reason: Incompatible library version: sfml-graphics requires version 17.0.0 or later,but freetype provides version 16.0.0 我只是不明白这个错误.我有FreeType的最新版本.考虑到FreeType是2.4.11,我甚至不确定该版本号是指什么.我似乎无法在任何其他地方找到这个错误,任何想法? 解决方法
错误消息中提到的版本号是指库的兼容版本.这是在构建时将其烘焙到给定动态库的版本号.当另一个二进制文件链接到该库时,兼容性版本将被复制到LC_LOAD_DYLIB加载命令,该命令在运行时告诉dyld需要加载哪些动态库.当dyld加载库时,会检查兼容性版本,如果程序的版本大于库的版本,则会出错.
当您运行otool -L freetype.framework / Versions / A / freetype时,您会看到它将其兼容版本报告为16.0.0.如果您在sfml-graphics.framework / Versions / 2.0.0 / sfml-graphics上运行它,您将看到它报告了freetype.framework的兼容版本17.0.0.所以你遇到了上面描述的错误情况. 像这样的错误的最常见原因是运行您的应用程序对比旧版本的框架而不是您构建它的版本,以及任何链接的框架.注意,在这种意义上,“较旧”是指兼容性版本而不是与框架相关联的任何其他版本号(例如,营销版本). 在不知道所涉及的两个框架的起源的情况下(例如,如果你自己构建它们,或者你从哪里获得二进制文件),那么你出错的地方并不完全明显.但是我会注意到SFML git存储库似乎有a version of (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |