2012-09-23 28 views
8

Tôi có một dự án sử dụng zbar-sdk (thư viện quét mã vạch).xcode 4.5 - không tìm thấy biểu tượng cho kiến ​​trúc i386 (zbar)

Sau khi cập nhật máy lên xcode 4.5 và ios6sdk, tôi đang gặp một số sự cố.

Tôi có thể xây dựng trình mô phỏng mà không cần chạm vào bất kỳ thứ gì về dự án của mình. Điều này đang sử dụng thư viện zbar 1.2 mới nhất.

Sau đó tôi muốn xây dựng thiết bị ios6 của mình để thử nghiệm và đó là khi tôi gặp lỗi.

Sau khi một số googling trên diễn đàn nhà phát triển zbar, tôi thấy rằng tôi cần thiết để có được nguồn zbar và xây dựng libzbar.a cho armv7 và armv7s vì điều này chưa được thực hiện bởi nhà phát triển zbar.

Xem - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912

Vì vậy, tôi đã làm điều này, tái nhập khẩu các libzbar.a cập nhật vào dự án của tôi. Sau đó tôi đã xây dựng cho thiết bị của mình và nó hoạt động! Tôi đã có thể tải ứng dụng của mình lên thiết bị thử nghiệm và thư viện mã vạch zbar hoạt động tốt.

Tôi nghĩ rằng đó là kết thúc của nó, nhưng tiếc là không.

Sau đó tôi đã cố gắng xây dựng lại trình mô phỏng (ios6), và đó là khi không thành công.

Không có vấn đề gì tôi không thể có được dự án này để xây dựng cho cả điện thoại và simualtor cùng một lúc và với các thiết lập tương tự :(

tôi thiết lập dự án libzbar.a khi xây dựng tập tin libzbar.a của riêng tôi :

Kiến trúc: chuẩn (ARMv7, armv7s) $ (ARCHS_STANDARD_32_BIT)

xây dựng tích cực Kiến trúc Chỉ: Không

Kiến trúc hợp lệ: armv7s ARMv7

Và thiết lập dự án của tôi (cho myapp) như:

Kiến trúc: Chuẩn (ARMv7, armv7s) $ (ARCHS_STANDARD_32_BIT)

xây dựng tích cực Kiến trúc Chỉ: Không

Kiến trúc hợp lệ: ARMv7 armv7s

SDK cơ sở: iOS6

iOS Deployment Targ et: iOS 5.0

Và lỗi khi cố gắng xây dựng để mô phỏng:

ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices) 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_ZBarReaderViewController", referenced from: 
     objc-class-ref in mycontroller.o 
    "_ZBarReaderControllerResults", referenced from: 
     -[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.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 tinh chỉnh các thiết lập dự án libzbar.a (ví dụ xây dựng kiến ​​trúc hoạt động được thiết lập để "CÓ") nhưng điều này chỉ dẫn đến cả giả lập hoặc thiết bị không hoạt động.

Thực tế là nó hoạt động trên thiết bị nhưng không phải trình giả lập khiến tôi có một số thiết lập kiến ​​trúc/dự án kỳ lạ gây ra điều này.

Bất kỳ trợ giúp nào được đánh giá cao!

Trả lời

2

Tôi nghi ngờ đây là câu trả lời đúng nhưng nó làm việc cho tôi, tôi đã biên soạn libzber.a mới bằng kiến ​​trúc: i386 armv6 armv7 armv7s theo thứ tự đó bạn cũng cần chỉ định các kiến ​​trúc hợp lệ. Một lần nữa đây là những gì làm việc cho tôi với một bản phát hành gần đây tôi cần phải nhận ra A.S.A.P. Cả hai đều được tìm thấy trong Target -> Build Settings -> Architecures.

Cũng lưu ý: cần xóa $ (ARCHS_STANDARD_32_BIT) khỏi cài đặt.

1

Tôi đã khắc phục sự cố tương tự bằng cách đặt kiến ​​trúc mô phỏng iOS6 trong OTHER_LDFLAGS trong Target-> Build Settings.

Tôi quên rằng tôi đã có một đối số dòng lệnh khác cho các kiến ​​trúc được tách riêng vì vậy tôi phải tự mô phỏng trình mô phỏng

+0

làm cách nào để thực hiện điều đó? –

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