After upgrading to Xcode 6: Undefined symbols for armv7 architecture: "___gnu_f2h_ieee"

I try to find the problem for hours without any results. I updated Xcode 6 and got this error on both ioS8.0 and 7.1 since:

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) 

Thank you for your help.

EDIT (complete build log error):

 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 
+7
ios cpu-architecture xcode compiler-errors
source share
2 answers

I also came across a very similar question and found this. This was resolved and was very helpful. http://helpdesk.metaio.com/questions/35905/undefined-symbols-for-architecture-i386-xcode-6-ios-8-beta-6/36538

Make a .c file (the name is not a concern, in my case I made i386Symbols.c) and add it to the project. Then paste this.

 // i386Symbols.c // Your project // // Created by Ludwig on 10/2/14. // Copyright (c) 2014. All rights reserved. // #include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> FILE *fopen$UNIX2003( const char *filename, const char *mode ) { return fopen(filename, mode); } int fputs$UNIX2003(const char *res1, FILE *res2){ return fputs(res1,res2); } int nanosleep$UNIX2003(int val){ return usleep(val); } char* strerror$UNIX2003(int errornum){ return strerror(errornum); } double strtod$UNIX2003(const char *nptr, char **endptr){ return strtod(nptr, endptr); } size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d ) { return fwrite(a, b, c, d); } 
+2
source share

I could not solve the problem, but I have a partial workaround.
There seems to be no armv7 fragment for many floating point armv7 . I assume they will be included in a later release (or final release) of Xcode 6.

Instead, there is a slice of armv7s : since I was debugging an iPhone5 that uses this last set of commands, I just needed to remove the architecture from the build settings.

  • Go to the project settings, select your project.
  • In the "Build Settings" section, find the "Architecture" entry.
  • Edit it, delete $(ARCHS_STANDARD) and replace it with armv7s .
  • As noted in jcr, you may need to switch the Active Architecture Only parameter from YES to NO .

This will allow you to create and run. Unfortunately, I do not have an arm64 device for testing, but it is possible that this fragment is also included.

+1
source share

All Articles