2011-10-31 34 views
19

Tôi đã cọ rửa SO và Google nhưng chưa tìm thấy bất kỳ điều gì hữu ích.Biểu tượng không xác định cho kiến ​​trúc i386 Nâng cấp dự án lên iOS 5

Chúng tôi đang cập nhật dự án iOS hiện tại của chúng tôi để xây dựng đối với iOS 5.

dự án của chúng tôi có hai mục tiêu, đầu tiên là thư viện tĩnh của chúng tôi và thứ hai là một ứng dụng Unit Test (GHUnit).

Khi xây dựng các mục tiêu thử nghiệm đơn vị nó biên dịch thành công thư viện tĩnh, nhưng sau đó thất bại trong việc liên kết chống lại nó với kết quả như sau:

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) 

tôi đã cố gắng tìm kiếm những biểu tượng unfound nhưng google theo nghĩa đen có 0 các kết quả.

Tôi giả định thư viện tĩnh đang được xây dựng với một cái gì đó mà mục tiêu kiểm tra đơn vị không phải là nhưng tôi không thể tìm thấy nó.

Có ai có bất kỳ đề xuất nào không?

Cheers

+1

Lỗi này thường xuất hiện khi không có khung công tác. Ở đây tôi không chắc chắn khung nào bị thiếu, nhưng có lẽ bạn có thể thử tìm ra các khung công tác bị thiếu. – Sahil

Trả lời

4

llvm_gcda_start_file và đồng được bổ sung bởi trình biên dịch LLVM cho mã số bảo hiểm và kiểm tra đơn vị.

thêm -lprofile_rt vào cờ liên kết trong cài đặt dự án của bạn nên giải quyết lỗi này. (hướng dẫn cũ hơn có thể đề xuất -lgcov dành cho Xcode 3 và GCC)

Theo yêu cầu Code Coverage on Xcode 4.4.1 "-lprofile_rt" không còn cần thiết nữa.

+1

Tôi đã có cùng một vấn đề và thêm các -lprofile_rt để Linker Flags, tuy nhiên mà gây ra lỗi này: 'thư viện không tìm thấy cho -lprofile_rt' –

+0

Chưa thử với Xcode 4.3beta, nhưng đã làm việc trong 4,2 của tôi, chỉ cần cố gắng : 1) kiểm tra nếu chúng tồn tại: '/usr/lib/libprofile_rt.a /usr/lib/libprofile_rt.dylib /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/libprofile_rt.a /Developer/Platforms/iPhoneOS.platform/Nhà phát triển/usr/lib/libprofile_rt.dylib' 2) kiểm tra cài đặt dự án của bạn có đường dẫn đúng và vv ... –

13

Nếu bạn không cần bảo hiểm mã, bạn có thể hoàn thành việc vô hiệu hóa bằng cách sử dụng các cài đặt sau, do đó tránh các cuộc gọi đã thực hiện đến các chức năng đó.

GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO 
GCC_GENERATE_TEST_COVERAGE_FILES = NO 
+0

Đây là bản sửa lỗi cho tôi. Tôi đã có (không thành công) thiết lập gcov tại một thời điểm và vấn đề này xuất hiện một cách bí ẩn. –

+0

Đây là câu trả lời đúng. – Jessedc

+0

Nếu bạn tắt tính năng này, có thể bạn sẽ cần biên dịch lại lib. –

1

Trong trường hợp của tôi, tôi đang xây dựng cho thiết bị. Chuyển sang chế độ mô phỏng hoạt động như sự quyến rũ, nhưng tôi không biết tại sao nó lại khác. :-)

48

này làm việc cho tôi tốt (bắt các thiết lập với đậm):

enter image description here

+9

"Dòng chương trình công cụ" là vấn đề của tôi! Cảm ơn! –

+1

Yap, trong trường hợp của tôi, nó đã khắc phục vấn đề [Google Analytics iOS SDK 3.x] (https://developers.google.com/analytics/devguides/collection/ios/v3/). – Geri

+1

Thx! cần 'Dòng chương trình cụ' cũng như – Papasmile

-2

I Had các lỗi tương tự: Chỉ cần thêm "libGoogleAnalyticsServices.a" vào các tập tin của bạn

+4

Google Analytics phải làm gì với LLVM và gcov? – MdaG

Các vấn đề liên quan