Reputation: 7388
I'm using a few '.o' files in my project and while compiling it shows the following error,
error:linker command failed with exit code 1 (use -v to see invocation)
I had posted the error log below
Ld /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator/app.app/app normal i386
cd /Users/deepak/Workspace/iosDevelopement/PROJECTS/KML/app
setenv IPHONEOS_DEPLOYMENT_TARGET 4.3
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -L/Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator -F/Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator -F/Users/deepak/Workspace/iosDevelopement/PROJECTS/KML/app -filelist /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/Objects-normal/i386/app.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=4.3 -lstdc++ -licucore -lz -framework MapKit -framework CoreLocation -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -framework KML -o /Users/deepak/Library/Developer/Xcode/DerivedData/app-bnwpvhpbrfdurbdgxucyddqyfosh/Build/Products/Debug-iphonesimulator/app.app/app
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZipException", referenced from:
objc-class-ref in ZipFile.o
objc-class-ref in ZipReadStream.o
objc-class-ref in ZipWriteStream.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Initially, there were more errors and solved them by importing libs.dylib framework,
but still 2 errors persists.
EDIT: I had already gone through the popular question Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error ,but the solution doesn't work for me
Does anyone know where I had gone wrong? I s that a problem with xcode, any missing libraries or failure in linking something?
Thanks in advance
Upvotes: 3
Views: 40629
Reputation: 2271
The solution I am providing will sound odd and it took a while for me to actually try it but it did the trick for me. This is only valid if you fixed all framework linking issue. Which was the case for me but I was still left with few Mach-O errors.
What I did was to remove all libraries from the linked frameworks and libraries (in General tab iOSTarget) and then added them back by just dragging them from the left pane to the linked frameworks and library space.
Upvotes: 0
Reputation: 385540
The error message says that the undefined symbol is referenced by ZipFile.o
, ZipReadStream.o
, and ZipWriteStream.o
. This implies that you're trying to use the Objective-Zip library in your app.
The undefined symbol is _OBJC_CLASS_$_ZipException
. The compiler generates this symbol when it sees the @implemention ZipException
directive in a source file.
The Objective-Zip library includes a file named ZipException.m
, which contains the @implementation ZipException
directive.
The most likely explanation is that you simply haven't included ZipException.m
in your target. Check that you have done so. If you don't know how, look at this answer.
Another possible explanation is that you have modified the ZipException.m
file, perhaps accidentally, in a way that removes the @implementation ZipException
directive or hides it from the compiler. Check that you have not modified the file, and that it contains the @implementation ZipException
directive.
Upvotes: 39