我正在尝试使用 cocos2d-x 作为游戏引擎,并且我已经尝试使用 RubyMotion 和 MonoTouch 来检查是否可以使用 cocos2d-x 二进制文件。但是 RubyMotion 和 MonoTouch 都遭受相同的链接器错误:
duplicate symbol _SHA1 in:
libcocos2dx.a(sha-1.o)
libcocos2dx.a(sha1_one.o)
我做了一项研究并发现了以下内容:_SHA1 符号在 libcurl.a 中定义,它打包为 cocos2d-x 外部内部的预编译静态库。在构建 cocos2d-x XCode 调用 libtool 以创建通用二进制 libcocos2dx.a 并且根据这篇文章libtool 本身会创建重复的符号(在某些情况下与类别错误有关)。尽管作者说明了他如何在他的案例中解决了类似的问题,但我不确定如何将他的解决方案应用于我的案例(如果可以应用的话)。
我不知道从哪里开始,因为我希望使用 Ruby 或 C# 来开发我的游戏。是否有可能解决这个 libtool/linker 问题并获得没有重复符号的静态库?
PS 请注意,如果我在我的 XCode 项目中使用与 xcode 项目相同的 cocos2d-x 二进制文件,那么一切都很好。但我想用 ruby/c# 编写代码。