c – 在XCode中构建时出现FreeType错误

c – 在XCode中构建时出现FreeType错误,第1张

概述首先回顾一下: 我不知道我在做什么. 这是谎言,我知道我在做什么.我是一名网络开发人员,因此查看代码并非全是胡言乱语,但尝试使用Xcode对我来说是一本新书.无论如何,我设计了一个在Windows上使用SFML在C中编译的游戏,现在我们正试图将它带到OS X(我是Mac中唯一的一个组). 使用Xcode 4.6.1和SFML 2.0我一直试图让这个该死的应用程序构建,到目前为止它只是头痛.让这个东 首先回顾一下:

我不知道我在做什么.

这是谎言,我知道我在做什么.我是一名网络开发人员,因此查看代码并非全是胡言乱语,但尝试使用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/freetypeReferenced from: /Users/Eric/library/Developer/Xcode/DerivedData/Test-haconqzbewevbwgukppsacykkpml/Build/Products/DeBUG/Test.app/Contents/Frameworks/sfml-graphics.framework/Versions/2.0.0/sfml-graphicsReason: Incompatible library version: sfml-graphics requires version 17.0.0 orlater,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 freetype.framework和相应的兼容版本(17.0.0),所以如果你使用的是SFML人员提供的sfml-graphics.framework二进制文件,那么可以选择他们的FreeType框架是你的解决方案.

总结

以上是内存溢出为你收集整理的c – 在XCode中构建时出现FreeType错误全部内容,希望文章能够帮你解决c – 在XCode中构建时出现FreeType错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1011101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存