0

我正在将现有的 cocos2d-x 项目从 3.7 更新到 3.15,并且遇到以下链接器错误:

    Undefined symbols for architecture arm64:
  "_iconv_open", referenced from:
      cocos2d::FontAtlas::conversionU32TOGB2312(std::__1::basic_string<char32_t, std::__1::char_traits<char32_t>, std::__1::allocator<char32_t> > const&, std::__1::unordered_map<unsigned int, unsigned int, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, unsigned int> > >&) in libcocos2d iOS.a(CCFontAtlas.o)
  "_iconv", referenced from:
      cocos2d::FontAtlas::conversionU32TOGB2312(std::__1::basic_string<char32_t, std::__1::char_traits<char32_t>, std::__1::allocator<char32_t> > const&, std::__1::unordered_map<unsigned int, unsigned int, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, unsigned int> > >&) in libcocos2d iOS.a(CCFontAtlas.o)
  "_CTFramesetterCreateWithAttributedString", referenced from:
      _calculateShrinkedSizeForString(NSAttributedString**, objc_object*, CGSize, bool, int&) in libcocos2d iOS.a(CCDevice-ios.o)
  "_iconv_close", referenced from:
      cocos2d::FontAtlas::~FontAtlas() in libcocos2d iOS.a(CCFontAtlas.o)
  "_CTFramesetterSuggestFrameSizeWithConstraints", referenced from:
      _calculateShrinkedSizeForString(NSAttributedString**, objc_object*, CGSize, bool, int&) in libcocos2d iOS.a(CCDevice-ios.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

关于我应该做些什么来解决这个问题的任何想法?

使用 Xcode 9.0 构建

谢谢!

4

1 回答 1

1

更新:通过一些进一步的探索,我发现我需要在我的项目中添加两个新框架:

导航到 Project->Build Phases->Link Binary With Libraries,并添加:

libiconv.tbd
CoreText.framework

解决了我的链接器错误。

把这个留在这里,以防其他人在从旧版本的 cocos2d-x 更新时遇到类似的问题。

于 2017-10-03T04:07:48.050 回答