xcode 5.1 - Undefined symbols for architecture x86_64 (zbar)
Asked Answered
R

3

12

I have updated my x code version from 5.0 to 5.1
I have used ZBarSDK in my project for scan bar code. In simulator 'iPhone Retina (3.5-inch)' and 'iPhone Retina(4-inch)', it is working fine. But when i want to build with simulator 'iPhone Retina (4-inch 64-bit)', it is giving the following error.

ld: warning: ignoring file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
 objc-class-ref in HomeViewController.o
"_ZBarReaderControllerResults", referenced from:
-[HomeViewController imagePickerController:didFinishPickingMediaWithInfo:] in  HomeViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Architecture: Standard architecture(arm64, armv7, armv7s) - $(ARCHS_STANDARD)
Valid Architectures: arm64,armv7,armv7s
Base SDK: Latest IOS(IOS 7.1)
iOS Deployment Target: iOS 6.1

Any help much appreciated!

Rheinland answered 21/3, 2014 at 13:58 Comment(1)
did you solved this???Tripitaka
K
31

USING PODS

pod 'ZBarSDK'

OR

Recompile ZBar for iphone 5. You can download recompiled ZBAR from here to skip the following

Steps

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

  2. 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

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

  4. Go to Build Settings set following Architectures

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

    b. Valid Architectures -> arm64,armv7 armv7s

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

  6. 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

  7. 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 : http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/

Kaufman answered 5/7, 2014 at 14:39 Comment(4)
thanks but ... why not just share the result and save us the trouble? its not like the license won't allow itAmin
Result : drive.google.com/file/d/0B-p7lFlJim9YUFh6a3ZJWlNwQUU/…Kaufman
For step #5 I used: (from the zbar/iphone folder extracted) xcodebuild -sdk iphoneos -configuration Release; xcodebuild -sdk iphonesimulator -configuration Release . Then step 6. cd buildSeraphine
if you use cocoapod, this is solution.Cheddite
W
2

This implies the library is not supported/built for the new archtitecture.

For zBar this answer has link to tutorial where you can download the source and just update the lib to new architecture.

Generally for a third party service. they will release new lib with the architecture added so make sure to check out their site for updated SDK.

Widely answered 21/3, 2014 at 14:6 Comment(1)
Thanks Kabira for your suggestion.Rheinland
S
2

Put in you Build Settings under "Other Librarian Flags" and "Other Linker Flags": $(OTHER_LDFLAGS)

Swedish answered 8/1, 2015 at 9:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.