iOS other linker flags
Posted word_hard(be_nice)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS other linker flags相关的知识,希望对你有一定的参考价值。
我是写swift项目的,引入了腾讯云视频的SDK,录制视频,播放视频都正常,但是一点击上传视频,app就crash掉了。
当时项目是在Xcode7下运行,报的错就一句话:
Xcode的Other linker flags 加上 -ObjC。
呜呜,最后终于可以了,解决了崩溃的问题,可苦逼的一个过程了,搞了两天。
对于具体原因,我网上搜了一些解释:
Other linker flags设置的值实际上就是ld命令执行时后面所加的参数。
下面逐个介绍3个常用参数:
-ObjC:加了这个参数后,链接器就会把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中。如果静态库中有category,那么需要添加 -ObjC 参数标识,否则可能会报:unrecognized selector sent to instance
-all_load:会让链接器把所有找到的目标文件都加载到可执行文件中,但是千万不要随便使用这个参数!假如你使用了不止一个静态库文件,然后又使用了这个参数,那么你很有可能会遇到ld: duplicate symbol错误,因为不同的库文件里面可能会有相同的目标文件,所以建议在遇到-ObjC失效的情况下使用-force_load参数。
-force_load:所做的事情跟-all_load其实是一样的,但是-force_load需要指定要进行全部加载的库文件的路径,这样的话,你就只是完全加载了一个库文件,不影响其余库文件的按需加载
以上是关于iOS other linker flags的主要内容,如果未能解决你的问题,请参考以下文章
<iOS>关于Xcode上的Other linker flags
关于Xcode的Other Linker Flags中的一些参数