Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zbar SDK - missing required architecture x86_64

I had one problem during building application in the recent Xcode 5.1. Compilation fails with "Undefined symbols for architecture x86_64" error.

I build my project with Valid Architecture: armv7, armv7s and arm64. After switch to the newest environment (Xcode) I rebuild libzbar.a library in the same architecture ( I have done it based on solution found at: Linker Error in Xcode-5)

Maybe somebody also had same problem and finally he had solved it, please share with solution:)

like image 934
mbutan Avatar asked Mar 26 '14 12:03

mbutan


3 Answers

Make sure your libzbar.a contains all the architectures you needed in your project. You may need following to build for device and simulator:

armv7 armv7s arm64 i386 x86_64

You can test this using following command:

xcrun -sdk iphoneos lipo -info libzbar.a
like image 63
gagarwal Avatar answered Oct 15 '22 12:10

gagarwal


I had the same problem and I solved that way:

  • Remove the reference of folder ZBarSDK from your project.
  • Download the version for armv7, arm7s and armv64 from this link .
  • Replace the older folder for the new, (Save a copy in case )
  • Add the new folder into your project.
  • Clean the project and Build.

Let me know if it works for you.

like image 27
fpauer Avatar answered Oct 15 '22 13:10

fpauer


Recompile ZBar for iphone 6

Steps

Download the source code (you must have Mercurial for mac):

Open Terminal and run following commands

a. hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar

b. cd zbar

c. hg checkout iPhoneSDK-1.3.1

d. open iphone/zbar.xcodeproj

In the xcode project edit the "libzbar" scheme and select Release in Build configuration

Go to Build Settings set following Architectures

a. Architectures - >Standard architectures(armv7,armv72,arm64)

b. Valid Architectures -> arm64,armv7 armv7s

Compile libzbar for device AND for simulator, here the configuration:

Find the compiled libzbar.a and go in the folder using Teminal.app,

In My Case : /Users/kappe/Library/Developer/Xcode/DerivedData/zbar-gyozyrpbqzvslmfoadhqkwskcesd/Build/Products

In this folder you you should have two sub folder Release-iphoneos and Release-iphonesimulator

using xcode command line tools build your universal lib:

lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a

Now you can use the libzbar.a created, both in device and simulator.

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

like image 12
Tushar - iOS developer Avatar answered Oct 15 '22 13:10

Tushar - iOS developer