添加第三方类库造成的Undefined symbols for architecture i386:编译错误

目录(?)[-]

  1. 还有另外一个httpstackoverflowcomquestions6610709undefined-symbols-for-architecture-i386
  2. Undefined symbols for architecture i386 _OBJC_CLASS__SKPSMTPMessage referenced from error

1.原因:

如果是源码编译的话,一般就只某些头文件没有添加到src编译里面。但是对于添加库编译,一般是库的编译路径设置不正确(比如arm的版本、模拟器或者真机的不同版本库引用错误或者重复引用一起编译器不知道如何选择)、或者库没有添加到lib path中。


2.解决:

2.1对于外部库真机和模拟器的库引用重复,可以参考

http://blog.csdn.net/forlong401/article/details/9304883

2.2
如果这些库是系统自带库,那就是在Build Phases的link binary with libraries里面添加即可。



3.参考(虽然很多写的都不太正确,但是可以参考一下):


http://my.csdn.net/kaixinnow2008/code/detail/4209


解决方法:

先点击方案(左边列表,点击方案的图示)

选择target

选择页签Build
Phases

Compile
Source

如果没展开的话先展开

向下找加号,点击加号,将这个target需要的.m档案的头文件都加入吧

(如果只有一个
就把左右的.h档案都加入)

这样就应该可以了


http://blog.csdn.net/itianyi/article/details/8499504


1,如何解决XCODE中错误: Undefined symbols for architecture i386 error

出现Undefined symbols for architecture i386这种错误一般是你用模拟器作为目标,但编译的时候找不到相关的库文件,需要做的就是把库文件所在的位置添加到library search path中。

其它原因可参考下面网址:http://stackoverflow.com/questions/6984368/undefined-symbols-for-architecture-i386-objc-class-skpsmtpmessage-refere

还有另外一个:http://stackoverflow.com/questions/6610709/undefined-symbols-for-architecture-i386

2,Undefined
symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error

答案:You can get this type of error if your class‘ .m file is not listed under the "Compile Sources" step of the "Build Phases" tab of your
target. Normally Xcode does this for you, but sometimes it loses the plot and you need to add the .m file manually.

3,请问为什么在link with lib 种添加  libxml2.dylb  后  引用不了<libxml/tree.h>  老是找不到头文件?

答案:XCODE ,  Project -> Edit Project Settings -> Build Settings

You need to add “/usr/include/libxml2″ to the “Header Search Paths” and you need to add “-lxml2″ to the “Other Linker
Flags”.

时间: 2024-12-30 10:33:36

添加第三方类库造成的Undefined symbols for architecture i386:编译错误的相关文章

Undefined symbols for architecture i386的错误

转:http://blog.csdn.net/azhou_hui/article/details/18312047 多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题: Undefined symbols for architecture i386: "_OBJC_CLASS_$_xx文件名", referenced from: 下面是可能导致这类问题出现的原因及修改: 1.相关工程文件未导入   你可以直接在这里+进来,也可以在左边工程目录中把文件全部重新导人一遍(多人操

iOS 错误 undefined symbols for architecture i386

undefined symbols for architecture i386 这个错误困扰了我几个小时. 网上很多问这个问题的,回答基本上都是说在 target 里面去的 armv64 什么什么的. 但问题根本不在这里! 巨简单的问题,就是缺少必要的库!进入 target - general,添加 libz.dylib 完事! 可是网上的各种答案对我造成了深深的误导,使我白白浪费了几小时时间.我就奇怪问什么这个答案网上就是找不到,而我也是偶然发现. 但是没什么用这个库,以及这个库具体作用是什么

XCode 6.4编译错误----Undefined symbols for architecture i386: &quot;_fwrite$UNIX2003&quot;

使用xcode在模拟器iphone4s和iphone5出现错误 编译时的错误描述: Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: 一开始感觉是.a文件没有单独编译i386,x86_64导致,重新编译后 lipo -info xxxx.a 发现.a文件即使支持i386,x86_64,但还是编译不通过. 网上查了一些资料后,发现解需要在工程中添加一个.c 文件 #include &

Undefined symbols for architecture i386: &quot;_deflate&quot;, referenced from:

Undefined symbols for architecture i386: "_deflate", referenced from: PlatCompress(enumCompressOperation, CompressCookie*, void*, long) in libMo.a(tlplatcompress.o) "_deflateEnd", referenced from: PlatCompress(enumCompressOperation, Co

微信SDK导入报错 Undefined symbols for architecture i386:&quot;operator delete[](void*)&quot;, referenced from:

异常信息: Undefined symbols for architecture i386:  "operator delete[](void*)", referenced from:      +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)      +[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)    

iOS:编译错误Undefined symbols for architecture i386: _OBJC_CLASS_$_XXX&quot;, referenced from: error

Undefined symbols for architecture i386: _OBJC_CLASS_$_XXX", referenced from: error 这个意思为无法找到名为XXX的类,进而还会导致一个无法连接的一个报错,只要把这个解决了就好了 既然没有这个类,我们就需要添加这个类 第一步: 选择项目文件,找到TARGETS 第二步: 选择 Build Phases 第三步: 选择 Compile Sources 第四步: 添加 XXX.m 类(切记,添加的是.m文件) 然后可能

oc调用c++接口时 报错 Undefined symbols for architecture i386:

当在oc中调用c++中的方法时,发现说c++中的方法没定义或是找不到 Undefined symbols for architecture i386: "_desTYData", referenced from:-[TuYoo encryptParametersWithDict:] in libtuyoo.a(TuYoo.o)ld: symbol(s) not found fo 记得c++中的方法定义是要这样定义的 extern"C" { const char *d

微信分享SDK导入报错 Undefined symbols for architecture i386:

Undefined symbols for architecture i386:   "operator delete[](void*)", referenced from:       +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)       +[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)       +

Undefined symbols for architecture i386:ld: symbol(s) not found for architecture i386

昨天项目还好好的,今天一编译竟然报错: Undefined symbols for architecture i386: "_KCCategorySentence", referenced from: ___58-[EvaSettingController tableView:didSelectRowAtIndexPath:]_block_invoke_2 in EvaSettingController.o -[XFParams setDefault] in XFParams.o __