错误消息:使用ZBar库的体系结构i386的未定义符号

时间:2011-05-12 15:37:54

标签: architecture undefined symbols ios-simulator i386

我现在遇到一个问题我正在尝试在Xcode 4.0中构建一个项目,希望有人可以为我阐明这个......

我正在尝试使用ZBar SDK并遵循此处概述的指南中列出的说明:

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

但是,我得到了同样的错误。我检查了John的帖子,但是,他提到的路径不在我的LIBRARY_SEARCH_PATH中。

我正在使用Xcode 4.0,我正在尝试为iPad 4.3模拟器构建我的项目。

(我得到的错误):

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

等。

我已经尝试过查看ZBar sdk附带的ReaderSample代码,并认为问题是我错过了他们在应用中使用的几个框架,但包括那些框架只是增加了错误的数量我是获得。这是Build设置问题吗?有没有人知道我可以尝试做什么?

P.S:我找到了两个类似于这个问题的线程,并尝试了他们推荐的各种解决方案,仍然无法得到解决方案

-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

我希望我正确使用这个线程...我对堆栈溢出相对较新。 Ť

3 个答案:

答案 0 :(得分:13)

我能够四处游玩并让它发挥作用。

我将Xcode更新为4.0.2。此外,ZBar的文档忘记提及使用SDK所需的其他框架(请参阅ReaderSample应用程序)。 7个框架需要按以下顺序排列:

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

我不知道框架在Build Phases中声明的顺序很重要。无论如何,希望有人试图将条形码扫描仪集成到他们的应用程序中,这个答案将是有用的。

答案 1 :(得分:1)

在编写使用CoreData的应用程序时,我遇到了类似的问题。事实证明,Build Phases部分没有包含一个关键的class.m文件。我手动将它添加到列表中(虽然它已经在项目中)并且一切正常。我以前从未见过Xcode忽略过这样的项目文件。

答案 2 :(得分:0)

在Xcode构建阶段的“将二进制文件与库链接”下手动添加UIKit.framwork 它解决了我同样的问题。