架构i386的未定义符号将项目升级到iOS 5

我一直在search和谷歌,但还没有发现任何有用的东西。

我们正在更新我们现有的iOS项目,以针对iOS 5构build。

我们的项目有两个目标,第一个是我们的静态库,第二个是unit testing应用程序(GHUnit)。

在构buildunit testing目标时,它成功地编译了静态库,但是却无法通过以下输出与它进行链接:

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) 

我试图寻找未知的符号,但谷歌字面上有0个结果。

我假设静态库正在build立与unit testing目标不是,但我找不到它的东西。

有没有人有什么build议?

干杯

这对我很好(用粗体捕捉设置):

在这里输入图像说明

如果您不需要代码覆盖范围,则可以使用以下设置完成禁用代码覆盖,从而避免尝试调用这些function。

 GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO GCC_GENERATE_TEST_COVERAGE_FILES = NO 

LLVM编译器添加了llvm_gcda_start_file和co以进行代码覆盖和unit testing。

在您的项目设置中向链接器标志添加-lprofile_rt应该可以解决这个错误。 (较老的教程可能会提示-lgcov是Xcode 3和GCC)

根据Xcode 4.4.1的代码覆盖率, “-lprofile_rt”不再需要。

在我的情况下,我正在build设设备。 切换到模拟器的工作就像魅力,但我不知道为什么它是不同的。 🙂

我有同样的错误:只需将“libGoogleAnalyticsServices.a”添加到您的文件