架构arm64的未定义符号:

时间:2015-12-26 03:23:01

标签: ios objective-c iphone xcode

大家。我的英语不好......

当我尝试在设备上的Xcode 7.1中运行我的应用程序时,我收到以下错误。你能不能告诉我这个问题。

Undefined symbols for architecture arm64:
  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
      elianContext::~elianContext() in liblibelian.a(elian.o)
  "std::string::_Rep::_S_empty_rep_storage", referenced from:
      _elianNew in liblibelian.a(elian.o)
      elianContext::~elianContext() in liblibelian.a(elian.o)
  "std::string::append(char const*, unsigned long)", referenced from:
      _elianNew in liblibelian.a(elian.o)
  "std::string::assign(char const*, unsigned long)", referenced from:
      _elianNew in liblibelian.a(elian.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的Xcode设置 - enter image description here。 而且,我是-------- lipo -create libA.a libB.a libC.a

libA.a支持:i386 x86_64(libA.a是模拟器)

libB.a支持:armv7 arm64 armv7s

请帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

转到&#34;构建设置&#34; - &GT; &#34;有效架构&#34;并确保你添加了arm64,armv7和armv7s。如果你添加其中任何一个,请转到&#34; product&#34; - &GT; &#34;清洁&#34;然后再次尝试在您的设备上运行该应用。祝你好运,希望这有帮助!

答案 1 :(得分:0)

忘记复杂的答案,因为您更改了XCODE内部结构,这些答案可能会影响其他已开发的应用程序。

根据我的经验,发生这种情况是因为您更新了复制项目的版本,这是最简单的方法。

当在“ BUILD SETTINGS”选项卡中将“启用模块(C和Objetive -C)”参数设置为YES时,问题就解决了。

我还建议比较项目之间的BUILD SETTINGS参数(虽然很多,但比重建项目要快。。。我不明白为什么Apple使它变得如此复杂)。

BUILD SETTINGS parameters