2012-09-23 92 views
8

我有一個使用zbar-sdk(條碼掃描庫)的項目。xcode 4.5 - 爲架構i386(zbar)找不到符號

更新我的機器到xcode 4.5和ios6sdk後,我有一些麻煩。

我能夠建立模擬器,而不需要觸摸我的項目。這是使用最新的zbar 1.2庫。

然後我想建立到我的ios6設備進行測試,那是當我得到一個錯誤。我看到我需要獲取zbar源代碼,併爲armv7和armv7s構建libzbar.a,因爲zbar開發人員尚未完成此操作。

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

所以我這樣做,重新導入更新的libzbar.a到我的項目。然後,我爲我的設備而建,並且工作正常!我能夠將我的應用程序放到我的測試設備上,並且zbar條形碼庫工作良好。

我認爲這是它的結束,但不幸的不是。

然後我試圖再次構建到模擬器(ios6),那就是它失敗的時候。

不管是什麼,我不能讓這個項目打造爲設備和simualtor在同一時間,並使用相同的設置:(既

我libzbar.a項目建設自己的libzbar.a文件時,設置:

架構:標準(ARMv7的,armv7s)$(ARCHS_STANDARD_32_BIT)

構建有源體系只有:沒有

有效的體系結構:ARMv7的armv7s

而我的項目設置(MYAPP)爲:

架構:標準(ARMv7的,armv7s)$(ARCHS_STANDARD_32_BIT)

構建有源體系只有:沒有

有效的體系結構:ARMv7的armv7s

基本SDK:iOS6

iOS部署Targ等:iOS的5.0

,並試圖建立到模擬器時出現錯誤:

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) 

我試圖調整的libzbar.a項目設置(例如將活動架構設置爲「YES」),但這隻會導致模擬器或設備無法正常工作。

事實上,它在設備上工作,但不是模擬器使我的事情有一些怪異的架構/項目設置造成這種情況。

任何幫助非常感謝!

回答

2

我懷疑這是正確的答案但它的工作對我來說,我使用編譯架構新libzber.a:I386的ARMv6 ARMv7的armv7s的順序,你還需要指定有效的架構爲相同的值。再次,這是對我來說最近的釋放我需要出去A.S.A.P.兩者都可以在Target - > Build Settings - > Architecures中找到。

另請注意:$(ARCHS_STANDARD_32_BIT)需要從設置中刪除。

1

我通過在Target-> Build Settings中的OTHER_LDFLAGS下設置iOS6模擬器體系結構來解決了類似的問題。

我忘了我有一個不同的命令行參數分離archituctures,所以我不得不手動狀態模擬器

+0

你怎麼做到這一點? –

相關問題