Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error Message: Undefined symbols for architecture i386 using ZBar Libraries

I'm having a problem right now with a project I'm trying to build in Xcode 4.0, hopefully someone can shed some light on this for me..

I'm trying to use the ZBar SDK and have followed the instructions outlined in the guideline outlined here:

http://zbar.sourceforge.net/iphone/sdkdoc/camera.html

however, i'm getting the same error. I checked out John's post, however, the path he mentioned wasn't in my LIBRARY_SEARCH_PATH's.

I'm using Xcode 4.0, and am trying to build my project for the iPad 4.3 Simulator.

(Error I'm getting):

Undefined symbols for architecture i386:
  "_objc_msgSend", referenced from:
  _main in main.o
  -[PrototypeAppDelegate application:didFinishLaunchingWithOptions:] in PrototypeAppDelegate.o
  -[PrototypeAppDelegate dealloc] in PrototypeAppDelegate.o
  -[Home loadGRView] in Home.o
  ...
"_UIApplicationMain", referenced from:
  _main in main.o
"_OBJC_CLASS_$_NSAutoreleasePool", referenced from:
  objc-class-ref in main.o
"_objc_msgSendSuper2", referenced from:
  -[PrototypeAppDelegate dealloc] in PrototypeAppDelegate.o
  -[PrototypeAppDelegate_iPhone dealloc] in PrototypeAppDelegate_iPhone.o
  ...
"_objc_setProperty", referenced from:
  -[PrototypeAppDelegate setTabBarController:] in PrototypeAppDelegate.o
  -[PrototypeAppDelegate setTheNavController:] in PrototypeAppDelegate.o
  ...

etc.

I've tried looking at the ReaderSample code included with the ZBar sdk, and thought the issue was that I was missing a couple frameworks that they used in their app, but including those frameworks just increased the number of errors i'm getting. Is this a Build setting issue? Does anyone have ideas of what I can try doing?

P.S: I found two threads similar to this problem, and tried the various solutions they recommended and still couldn't get a solution

-http://stackoverflow.com/questions/1452466/suddenly-i-am-not-able-to-build-for-the-iphone-simulator -http://stackoverflow.com/questions/1456185/build-error-missing-required-architecture-i386-in-file/1467238#1467238

I hope I'm using this thread correctly... I'm relatively new to stack overflow. T

like image 954
ephilip Avatar asked May 12 '11 15:05

ephilip


2 Answers

I was able to play around and get it working.

I updated Xcode to 4.0.2. Also, the documentation for ZBar forgot to mention the other frameworks needed to use the SDK (Take a look at the ReaderSample application). The 7 frameworks need to be in the following order:

Foundation.framework
CoreGraphics.framework
UIKit.framework
AVFoundation.framework
CoreMedia.framework
CoreVideo.framework
QuartzCore.framework
libiconv.dylib
libzbar.a

I wasn't aware the order the frameworks are declared in the Build Phases mattered. Anyways, hopefully for anybody trying to integrate a barcode scanner into their app, this answer will be useful.

like image 109
ephilip Avatar answered Sep 27 '22 23:09

ephilip


I had a similar problem while writing an app that used CoreData. It turns out that the Build Phases section was not including a critical class.m file. I manually added it to the list (although it was already in the project) and everything worked fine. I have never seen Xcode ignore a project file like this before.

like image 23
Richard L Avatar answered Sep 28 '22 00:09

Richard L