iOS导入第三方类库常见报警linker command failed with exit code 1 (use -v to see invocation)

来源:互联网 发布:mac上怎么卸载软件 编辑:程序博客网 时间:2024/05/22 09:19

 linker command failed with exit code 1 (use -v to see invocation)这个错误貌似遇见并不止一次,当我想用某个第三方类库的时候,我直接把类库文件copy到工程目录里面,然后一编译就出现这样错误(并不是一定会出这样错误),开始以为是网上下载的类库本身问题,所以重新找类库或者其他方式将它添加进去,只要不出错就行,也一直没有深入了解根本问题,今天在给工程添加一个FMDB(SQLIte第三方类库)文件编译时又出现这种错误,一开始以为工程问题,但是新建工程后还是出现这个问题,经过网上查找,得到了解决办法;

      

    在网上得到解决办法是:

    在工作左边导航栏Target-->Build Phases-->compile Sources中,第三库库的所有.m文件都添加到里面,然后编译通过了;

    

    我们在使用这些第三方类库文件时直接将其拖拽到工程之中,编译的的时候Xcode也没有自动引用,所以造成这样错误,这就需要我们手动添加。假如我们在工程中新建某个文件就不会出现这样问题;



如果有.a静态库的时候,有时候是因为没有制定.a文件的路径


下面这个博客里写的比较全面,可以参考一下。

http://blog.csdn.net/hengshujiyi/article/details/21182813



下面这个报警也是在项目中遇见的,也写在这里吧,可以看看。

 -[_PFArray removeObject:]:unrecognized selector sent to instance iphone,报警问题的解决

    看reason:后面的异常说明:意思是我把一个可变量对应的方法让一个不可变量来调用

    mutating method(可变量对应的方法):是那些在创建后可以被更改的变量所拥有的method,比如NSMutableArray,NSMutableDictionary 等

    immutable object(不可改变的变量):就是那些被创建后不能被改变的变量:比如 NSArray NSDictionary等

    我的Exception被报出来是因为我有一行错误代码

    [array removeObjectInArray removeArray];

    这里,我的array是从一个不可改变的变量类型为NSDictionary得到的,

    代码为:NSMutableArray *array = [names valueForKey myKey];

    所以,array这里也是一个不可改变量(即使我声明用的是NSMutableArray),但显然removeObjectInArray是一个改变变量的操作,所以这是不允许的


    NSMutableArray 和 nsArray 之间相互转换,有时容易混淆,有的方法不能使用,就是因为他们有可变和不可变之分, 字典也一样




0 0
原创粉丝点击