出现( linker command failed with exit code 1)错误总结汇总
来源:互联网 发布:易云网络加速器 编辑:程序博客网 时间:2024/06/02 00:06
上半部分原文地址:
http://blog.csdn.net/hengshujiyi/article/details/21182813
这种问题,通常出现在添加第三方库文件或者多人开发时。
这种问题一般是找不到文件而导致的链接错误。 我们可以从如下几个方面着手排查。
1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误。
- Undefined symbols for architecture armv7:
- "_OBJC_CLASS_$_MyPageLogViewController", referenced from:
- objc-class-ref in BaiduMobStatAppDelegate.o
- ld: symbol(s) not found for architecture armv7
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
错误中出现了“MyPageLogViewController”这个类,你可以找到这个类的.m文件, 查看他的Target Membeship, 如下图
如果没有勾选上,点击勾选。然后编译查看。
2. 如果是新添加的第三方库,且不是静态库
先重复第一步过程,然后找到 Build settings->Linking->Other Linker Flags
将此属性修改成-all_load 或者 -ObjC ,这个视情况而定。总之可以多试几次。
3.如果添加的是第三方静态库(.a文件)
- Undefined symbols for architecture armv7:
- "_OBJC_CLASS_$_BaiduMobStat", referenced from:
- objc-class-ref in BaiduMobStatAppDelegate.o
- objc-class-ref in MyPageLogViewController.o
- (maybe you meant: _OBJC_CLASS_$_BaiduMobStatAppDelegate)
- ld: symbol(s) not found for architecture armv7
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
在用到这个库的所有文件中都出现了错误, 如上 BaiduMobStatAppDelegate 类和 MyPageLogViewController类
这种情况就可能是这个静态库路径混乱导致的链接错误
解决方法:Build settings->Search Path->Library Search Paths 添加静态库的相应路径。如下图
如果上面的所有方法都不管用。你可以再试试一下几个方法:
1,看看是不是有新添加的文件跟之前文件同名
2,错误信息中出现了某个类的名字,去原文件中看看#import了哪些第三方库,把这些库挨个注释排除,找到出错的那个库,然后按照官方提供的步骤重新添加一遍。
另外一位网友给出的解释:
参考 http://blog.hsin.tw/2012/ios-dev-undefined-symbols-for-architecture-i386/
linker command failed with exit code 1 (use -v to see invocation)这个错误貌似遇见并不止一次,当我想用某个第三方类库的时候(如SBJson),我直接把类库文件copy到工程目录里面,然后一编译就出现这样错误(并不是一定会出这样错误),开始以为是网上下载的类库本身问题,所以重新找类库或者其他方式将它添加进去,只要不出错就行,也一直没有深入了解根本问题,今天在给工程添加一个FMDB(SQLIte第三方类库)文件编译时又出现这种错误,一开始以为工程问题,但是新建工程后还是出现这个问题,经过网上查找,得到了解决办法;
- Undefined symbols for architecture i386:
- "_OBJC_CLASS_$_FMDatabase", referenced from:
- objc-class-ref in ViewController.o
- ld: symbol(s) not found for architecture i386
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
在网上得到解决办法是:
在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面,然后编译通过了;
添加.m文件
根据对比可以看见 in FMDBTest,FMDBTest的Target里添加进去了了一些.m文件
对于以上错误,根据网友解答我的理解是
我们在使用这些第三方类库文件时直接将其拖拽到工程之中,编译的的时候Xcode也没有自动引用,所以造成这样错误,这就需要我们手动添加。假如我们在工程中新建某个文件就不会出现这样问题;
更多精彩文章,尽在我的公众号.
0 0
- 出现( linker command failed with exit code 1)错误总结汇总
- 出现( linker command failed with exit code 1)错误总结
- ( linker command failed with exit code 1)错误总结
- ( linker command failed with exit code 1)错误总结
- linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- 出现( linker command failed with exit code 1)错误总结
- iOS开发中出现( linker command failed with exit code 1)错误的总结
- 出现( linker command failed with exit code 1)错误总结
- 一名程序员的自我修养
- 第十四周项目--分块查找
- Cowardly refusing to `sudo brew update` or failure
- 利用指针数组实现将若干字符串按照字母顺序输出
- JDBC连接SQL Server 2014问题总结
- 出现( linker command failed with exit code 1)错误总结汇总
- 安装Intel HAXM为Android 模拟器加速
- Masonry自动布局详解五:比例(multipliedBy)
- Cocos常见的宏
- 第十二周-操作用邻接表存储的图
- 不简单啊,账号找回来了
- 第14周项目1——验证算法(分块查找)
- 【第13周-图项目5——拓扑排序算法验证】
- 第15周 项目2—用哈希法组织关键字