更新到Xcode 6后:架构armv7的未定义符号:"___ gn_f2h_ieee"

jcr*_*jcr 7 xcode compiler-errors cpu-architecture ios

我一直试图找到问题几个小时没有结果.我已经更新到Xcode 6并且从那时起在ioS8.0和7.1上都出现了这个错误:

Undefined symbols for architecture armv7:
  "___gnu_f2h_ieee", referenced from:
      _playbackCallback in Audio.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

编辑(完整构建日志错误):

Ld /Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Products/Debug-iphoneos/Acc.app/Acc normal armv7
cd /Users/rjc/Desktop/apps/Acc
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode6-Beta2.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk -L/Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Products/Debug-iphoneos -L/Users/rjc/Desktop/apps/Acc/Acc -F/Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Products/Debug-iphoneos -F/Users/rjc/Desktop/apps/Acc -filelist /Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Intermediates/Acc.build/Debug-iphoneos/Acc.build/Objects-normal/armv7/Acc.LinkFileList -dead_strip -ObjC -all_load -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=7.1 -lCorePlot-CocoaTouch -framework CoreTelephony -framework MediaPlayer -framework MessageUI -framework Social -framework Accelerate -framework CoreLocation -framework MobileCoreServices -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -framework CoreData -Xlinker -dependency_info -Xlinker /Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Intermediates/Acc.build/Debug-iphoneos/Acc.build/Objects-normal/armv7/Acc_dependency_info.dat -o /Users/rjc/Library/Developer/Xcode/DerivedData/Acc-hjhfomxkmwbyxwbfzjbduabbhlcc/Build/Products/Debug-iphoneos/Acc.app/Acc
Run Code Online (Sandbox Code Playgroud)

Pie*_*ica 1

我无法解决该问题,但我有部分解决方法。
看来armv7很多浮点函数都没有切片。我假设它们将包含在 Xcode 6 的后续版本(或最终版本)中。

相反,切片armv7s却存在:因为我在 iPhone5 上进行调试,它使用后一个指令集,所以我只需从构建设置中删除该架构即可。

  1. 继续您的项目设置,选择您的项目。
  2. 在Build Settings下,查找Architectures条目。
  3. 编辑它,删除$(ARCHS_STANDARD)并替换为armv7s.
  4. 正如 jcr 所指出的,您可能必须将Active Architecture Only选项从切换YESNO

这将允许构建和运行。不幸的是,我没有arm64可以测试的设备,但也可能包含该切片。