2014-03-26 44 views
9

在最近的Xcode 5.1中構建應用程序時,我遇到了一個問題。編譯失敗,出現「Undefined symbols for architecture x86_64」錯誤。Zbar SDK - 缺少所需的體系結構x86_64

我用有效架構構建我的項目:armv7,armv7s和arm64。切換到最新的環境(Xcode)後,我重建libzbar.a庫在相同的架構(我已經做到了基於解決方案找到在:Linker Error in Xcode-5

也許有人也有同樣的問題,最後他解決了它,請與解決方案分享:)

+0

看來您下載的Zbar版本不支持64,這是必需的。您可以嘗試從源代碼構建Zbar。 – rckoenes

+0

是的,我做到了,我已經基於源代碼和適當的體系結構重建libzbar.a。然而,它並沒有幫助我,它是誰的作品? – mbutan

+0

是否添加了所有必需的框架? – Mohit

回答

3

我昨天有同樣的問題,我終於能夠與64位模擬器構建。

在您嘗試的鏈接之後,我替換了庫和所有頭文件。但這還不夠。然後,我還將鏈接二進制庫中的libzbar.a與Bulid Phases上的庫鏈接關聯,然後重新添加該庫。然後它正在工作。

讓我知道它是否適合你。

+0

嗨,你可以讓我知道如何編譯xcode 6的x86_64 libzbar?我用iOS設備構建,但它只給出armv7和arm64,對於iPhone6模擬器也是如此。請讓我知道我能做些什麼來爲x86_64構架構建它。 –

+0

Tushar - 你需要生成一個胖的靜態庫。 https://gist.github.com/rehos/7856163 – HMHero

+0

Ohk太棒了,它適合我。謝謝。 –

4

確保您的libzbar.a包含您的項目中所需的所有體系結構。您可能需要以下以建立設備和模擬器:

armv7 armv7s arm64 i386 x86_64 

您可以測試這個使用下面的命令:

xcrun -sdk iphoneos lipo -info libzbar.a 
+0

我不明白。我可以用arv7 arv7s arm64獲得一個。而另一個與armv7 i386或armv7 x86_64我不知道爲什麼。你可以幫我嗎? – amurcia

+0

我也一樣。你能幫助我如何使用x86_64構建它嗎? –

9

重新編譯zbar和爲iPhone 6

步驟

下載源代碼代碼(您必須擁有適用於Mac的Mercurial):

Op en終端並運行以下命令

a。 hg克隆http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar

b。 cd zbar

c。 hg checkout iPhoneSDK-1.3.1

d。打開iphone/zbar.xcodeproj

在Xcode項目編輯「libzbar」方案,並選擇發行在構建配置

轉到構建設置設置以下架構

一個。體系結構 - >標準體系結構(armv7,armv72,arm64)

b。有效的架構 - > arm64,ARMv7的armv7s

編譯libzbar的設備和模擬器,這裏的配置:

找到編譯libzbar.a並使用端子短的文件夾中去。應用程序,

在我的情況:/用戶/ KAPPE /庫/開發商/ Xcode中/ DerivedData/zbar和-gyozyrpbqzvslmfoadhqkwskcesd /編譯/產品

在此文件夾你,你應該有兩個子文件發佈-的iPhoneOS和釋放 - iphonesimulator

使用Xcode中的命令行工具構建通用的lib:

脂-create發佈-的iPhoneOS/libzbar.a釋放iphonesimulator/libzbar.a -o libzbar.a

現在你可以使用libzbar.a創建編輯,無論是在設備和模擬器。

編號:xcode 5.1 - Undefined symbols for architecture x86_64 (zbar)

2

我是在火車zbar和以及相當長的處理這些問題,因爲它們還沒有被更新的SDK一段時間。幸運的是,如果您的應用程序只需支持iOS7以上版本(現在大多數iOS用戶都在使用該版本),則AVFoundation中現在支持QR /條碼閱讀支持,因此您可以輕鬆構建自己的閱讀器。看看這個教程:

http://www.appcoda.com/qr-code-ios-programming-tutorial/

中這是一個完全蘋果美容然後曬支持QR碼閱讀器!

24

我有同樣的問題,我解決了這個辦法:

  • 從您的項目中刪除文件夾ZBarSDK的參考。
  • 從此link下載armv7,arm7s和armv64的版本。
  • 將新文件夾替換爲新文件(保存副本)
  • 將新文件夾添加到項目中。
  • 清理項目並建立。

讓我知道它是否適合你。

+1

它爲我工作。謝謝 – Ujwal

+4

[在github上,ZBarSDK-for-iOS,那裏有一個建好的項目。](https://github.com/null09264/ZBarSDK-for-iOS) – AechoLiu

+0

它像一個魅力工作...謝謝 –

5

對我來說:xcode 6,iphone 6工作的fpauer的方法!

方式:

從您的項目中刪除文件夾ZBarSDK的參考。 從this鏈接下載armv7,arm7s和armv64的版本。 將舊文件夾替換爲新文件夾(保存副本) 將新文件夾添加到項目中。 清理項目並建立。

相關問題