I've been scouring SO and Google but haven't found anything helpful yet.
We're updating our existing iOS project to build against iOS 5.
Our project has two targets, the first is our static library and the second is a Unit Test application (GHUnit).
When building the unit test target it successfully compiles the static library, but then fails to link against it with the following output:
Ld /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/UnitTests.app/UnitTests normal i386
cd /Users/XXXXXX/Documents/iOS/trunk
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator -F/Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator -F/Users/XXXXXX/Documents/iOS/trunk -F/Users/XXXXXX/Documents/iOS/trunk/UnitTests -filelist /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Intermediates/XXXXXXLibrary.build/Debug-iphonesimulator/UnitTests.build/Objects-normal/i386/UnitTests.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -ObjC -all_load -Wl -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -framework SystemConfiguration -framework CoreLocation -framework CoreData /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/XXXXXX.a -framework GHUnitIOS -framework CoreGraphics -framework Foundation -framework UIKit -o /Users/XXXXXX/Library/Developer/Xcode/DerivedData/XXXXXXLibrary-egoqfplddstqvwaigwuiqfqplcax/Build/Products/Debug-iphonesimulator/UnitTests.app/UnitTests
Undefined symbols for architecture i386:
"_llvm_gcda_start_file", referenced from:
___llvm_gcov_writeout in XXXXXX.a(NSObject+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(NSString+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonBase.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonParser.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonWriter.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXXReachability.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXX.o)
...
"_llvm_gcda_emit_function", referenced from:
___llvm_gcov_writeout in XXXXXX.a(NSObject+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(NSString+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonBase.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonParser.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonWriter.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXXReachability.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXX.o)
...
"_llvm_gcda_emit_arcs", referenced from:
___llvm_gcov_writeout in XXXXXX.a(NSObject+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(NSString+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonBase.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonParser.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonWriter.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXXReachability.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXX.o)
...
"_llvm_gcda_end_file", referenced from:
___llvm_gcov_writeout in XXXXXX.a(NSObject+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(NSString+SBJSON.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonBase.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonParser.o)
___llvm_gcov_writeout in XXXXXX.a(SBJsonWriter.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXXReachability.o)
___llvm_gcov_writeout in XXXXXX.a(XXXXXX.o)
...
"_llvm_gcda_increment_indirect_counter", referenced from:
-[SBJsonParser scanValue:] in XXXXXX.a(SBJsonParser.o)
-[SBJsonParser scanRestOfString:] in XXXXXX.a(SBJsonParser.o)
-[SBJsonWriter appendString:into:] in XXXXXX.a(SBJsonWriter.o)
-[XXXXXX loginSuccessfulCallback:XXXXXXHttpResult:] in XXXXXX.a(XXXXXX.o)
+[XXXXXXDataTank sharedDataTankManager] in XXXXXX.a(XXXXXXDataTank.o)
-[XXXXXXDataTank processFiveHundredSeriesHttpResult:] in XXXXXX.a(XXXXXXDataTank.o)
-[XXXXXXDataTank networkActive] in XXXXXX.a(XXXXXXDataTank.o)
...
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've tried searching for the unfound symbols but google literally has 0 results.
I assume the static library is being built with something that the unit test target isn't but I cannot find it.
Does anyone have any suggestions?
Cheers
This worked for me well (catch the settings with bold):
If you don't need the code coverage, you can complete disable it by using the following settings, thus avoiding the attempted calls to those functions.
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_GENERATE_TEST_COVERAGE_FILES = NO
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With