2

在为 AppleTV 项目编译 cocos2d-js 时,我收到此错误:

ld: '/Users/pepa/Library/Developer/Xcode/DerivedData/GameXY-gwkkxwmtiilmalhdxfdjgqdfhedy/Build/Products/Debug-appletvos/libcocos2d tvOS.a(bio_lib.o)' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE)或从供应商处获取架构 arm64 clang 的更新库:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我相信我只包含了为启用了位码的 AppleTV 目标构建的库。但编译器仍在抱怨。是否提示告诉哪个库错过了括号中的位码?(bio_lib.o)

如果是这样,你知道它属于哪个图书馆吗?我在我的电脑上没有找到它。我正在使用这里的预构建二进制文件:https ://github.com/elvman/cocos2d-x-3rd-party-libs-bin/tree/tvos

4

2 回答 2

2

使用后续步骤:

  1. 安装 git、make、autoconf、automake、libtool。如果您使用的是 Homebrew,可以通过以下方式完成:

    brew install git make autoconf automake libtool

  2. 克隆存储库:

    git clone https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src.git

  3. 转到cocos2d-x-3rd-party-libs-src/build并更改文件中的 2 行tvos.ini

    cfg_build_release_mode="-O3 -DNDEBUG -fembed-bitcode"

    cfg_build_debug_mode="-O0 -g -DDEBUG -fembed-bitcode"

  4. 运行构建脚本:

    build.sh -p=tvos --libs=curl --arch=arm64,x86_64 --mode=release

  5. 更新 libcurl.a 加密和 ssl 库

于 2015-11-28T08:17:44.610 回答
1

好的,对于任何来这里尝试使用启用 Bitcode 为 iOS 构建 cocos2d-x (3.10) 的人。我根据user1675169(https://stackoverflow.com/a/33969215/129202)的回答做到了,但当然我替换了 build.sh 行中的 os,我必须一一替换所有这些:

  • libtiff.a
  • libwebp.a
  • libchipmunk.a
  • libjpeg.a
  • libpng.a
  • libfreetype.a

我花了一段时间来更换这些。根据您在 cocos2d-x 项目中使用的内容,您可能还需要替换其他库。可能最终 cocos2d-x 3.11 将与所有这些库一起交付,并首先启用位码。

重新编译行可能如下所示:

build.sh -p=ios --libs=tiff --arch=arm64,x86_64 --mode=release

最后,我能够在启用位码的情况下预编译整个 libcocos2d。我还没有尝试将它发送到 iTunes Connect,但我想它最终可能真的有效。

于 2016-02-23T07:47:34.660 回答