可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am getting this error after adding the libxml2.2.dylib file
Linking /Users/Biranchi/Desktop/Funmovies TabBarController/build/Debug-iphonesimulator/funmovies.app/funmovies (1 error)
in /Developer/Platforms/iphoneOS.platform/Developer/SDKs/iphoneOS3.0.sdk/lib/libobjc.A.dylib, missing required architecture i386 in file
Command /XCode3.1.4/platforms/iphoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
What is this error due to ??
All suggestions are appreciated.
Thanks
Biranchi
回答1:
Got the same error, now even when I`ve deleted libxml2 from project error still here :) This sh**y XCode wrote this:
LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib,
+ );
into project`s config file "project.pbxproj" in "MyProj.xcodeproj".
You can change this path by hands to something like:
LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ /Developer/Platforms/iPhoneSimulatorOS.platform/Developer/SDKs/iPhoneSimulatorOS3.0.sdk/usr/lib,
+ );
But do not forget to change it back when compile into device.
I`ll try to find more simple way to resolve this problem.
回答2:
Make sure you import with correct extension.
I got the error when I by mistake wrote #import "AClass.m"
instead of #import "AClass.h"
:-)
回答3:
I had to remove this library libz.1.2.3.dylib and add this one libz.1.2.5.dylib. After that it compiled fine.
回答4:
Try Product -> Clean. Worked for me.
回答5:
Make sure if you have external classes they are added in the compile sources. I had the same error when i was trying to import a certain class. To fix it goto build phases and add it into the compiled sources.
回答6:
I had a similar problem when building a project but this time with the file timbreID.c
arm-apple-darwin10-gcc-4.2.1: timbreID.c: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
After several attempts I finally looked into the 'Targets' on my XCode project and realized that the file timbreID.c was red (= not found). I right-clic on it and chose the new path manually.
After that: build succeeded!!
回答7:
just remove the libz1.2.3 and add the libz1.2.5 library to your build phase.
回答8:
I had the same problem and I went on checking the target info
In the library search paths there was this entry,
"$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/lib"
I removed it and the app WORKED!!!
回答9:
If this is a problem related to a specific frame work, make sure it is enabled in the build phase. For me I had to add MessageUI.framework: In Xcode 4 goto the build phases tab for your target. Make sure you see the frameworks you are using. If it's not there click + to add it.
回答10:
Try to issue the failed command from the command line. There, you will see the stderr output that is not shown via GUI.
回答11:
I was getting the same error even though none of the files in the navigation pane were red. Turns out I refactoring the name of a class throws the xcode path locations off. The solution that worked for me was to select the .h and .m files one at a time, set the location to "Absolute Path" (in the right hand menu, leftmost tab) and then browse to its location in the file system.
回答12:
To add to Graham Heath's answer - which I think deserves more prominence in the thread.
Checking for a missing framework is the quickest and easiest fix to try. Totally non-destructive and probably the cause of these sort of errors for most people. Just browse the list of frameworks for something that looks appropriate and try it. I think many people are fooled because XCode does not flag a problem with a class when you write the code - just when you link it.
My error was: "linker command failed with exit code 1 (use -v to see invocation)" concerning a couple of errors in CoreLocation:
"Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_CLLocationManager", referenced from:
objc-class-ref in NPTViewController.o"
I added CoreLocation.framework and the job was done.