iOS关于Xcode上的Other linker flags
Targets选项下有Other linker flags的设置,用来填写XCode的链接器参数,如:-ObjC -all_load -force_load等。
还记得我们在学习C程序的时候,从C代码到可执行文件经历的步骤是:
源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可执行文件
在最后一步需要把.o文件和C语言运行库链接起来,这时候需要用到ld命令。源文件经过一系列处理以后,会生成对应的.obj文件,然后一个项目必然会有许多.obj文件,并且这些文件之间会有各种各样的联系,例如函数调用。链接器做的事就是把这些目标文件和所用的一些库链接在一起形成一个完整的可执行文件。
如果要详细研究链接器做了什么,请看:http://www.dutor.net/index.php/2012/02/what-linkers-do/
那么,Other linker flags设置的值实际上就是ld命令执行时后面所加的参数。
下面逐个介绍3个常用参数:
-ObjC:加了这个参数后,链接器就会把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中
-all_load:会让链接器把所有找到的目标文件都加载到可执行文件中,但是千万不要随便使用这个参数!假如你使用了不止一个静态库文件,然后又使用了这个参数,那么你很有可能会遇到ld: duplicate symbol错误,因为不同的库文件里面可能会有相同的目标文件,所以建议在遇到-ObjC失效的情况下使用-force_load参数。
-force_load:所做的事情跟-all_load其实是一样的,但是-force_load需要指定要进行全部加载的库文件的路径,这样的话,你就只是完全加载了一个库文件,不影响其余库文件的按需加载
转载于:https://www.cnblogs.com/samniu/p/3817047.html
iOS关于Xcode上的Other linker flags相关推荐
- Xcode上的Other Linker Flags参数详解
Xcode上的Other Linker Flags参数详解 Other Linker Flags Other Linker Flags位置 原理介绍 常用参数 总结 参考链接 Other Linker ...
- 关于Xcode上的Other linker flags
Targets选项下有Otherlinker flags的设置,用来填写XCode的链接器参数,如:-ObjC-all_load -force_load等 首先,要说明一下Other Linker F ...
- xcode:关于Other Linker Flags
原文出自:http://alloc.sinaapp.com/wp/?p=272 一.关于Other Linker Flags xcode中,在"Targets"选项下有Other ...
- 爱萌即时通讯使用 - Other linker flags设置
在使用爱萌sdk操作时发现了不少问题,最先便是运行就会各种崩溃: [__NSCFString dtJsonValue]: unrecognized selector sent to instance ...
- Xcode - Other Linker Flags
为什么80%的码农都做不了架构师?>>> 背景 在ios开发过程中,有时候会用到第三方的静态库(.a文件),然后导入后发现编译正常但运行时会出现selector not rec ...
- (转载)Xcode中other linker flags的作用
原文地址: https://blog.csdn.net/iosfengguibin/article/details/52086435 今天导入三方的sdk之后,空项目,总是报错"select ...
- ionic xcode 上传appstroe 创建Distribution证书报错 you already have a current iOS Distribution certificate
ionic xcode 上传appstroe 创建Distribution证书报错 you already have a current iOS Distribution certificate 报错 ...
- 【ios】 Other Linker Flags配置
我们在使用第三方静态库的时候,一般会提醒在Other Linker Flags里边配置"-ObjC"或者"-all_load"或者"-force_lo ...
- Xcode 上使用Reveal调试界面
安装方法 1.打开Reveal,选择Help -> Show Reveal Library in Finder -> iOS Library 2.将Reveal.framework拖到Xc ...
最新文章
- margin负值 – 一个秘密武器
- linux做单臂路由实现trunk 使vlan之间通信
- 个人日记2016年12月19日21:31:46
- canvas整体放大_【HTML5】Canvas 实现放大镜效果
- 并发编程——线程——线程的理论和创建以及守护线程
- eclipse 修改maven项目的jdk版本
- python创意实用案例-精心整理!9个 Python 实用案例分享
- linux命令关闭浏览器,linux命令行浏览器的使用方法
- rust腐蚀怎么建立单机服务器_腐蚀rust搭建Rust服务器及联机教程
- 路由器02---PandoraBox配置
- HEXO+ICARUS主题配置安装经验分享
- 疫情已经结束,快递行业现状如何
- USB 之枚举过程概述
- 知识汇总——50种常用经典电路图
- Windows10关闭指定端口号命令
- kafka常用命令整理
- 《实用医学统计学与SAS应用》学习笔记 | 分类变量资料的比较-卡方检验
- 发行你自己的 ICO - 发行前的考虑
- 关于undefined reference to `WSASocketA@24'问题的解决
- windows双网卡,一个公网网卡,一个拨号网卡,如何vm实现拨号上网
热门文章
- 从月薪5千到月薪3万,优秀的程序员是这样做的...
- Centos6.9安装Oracle11G(静默方式)
- 《数值分析(原书第2版)》—— 第0章 基 础 知 识
- update值与原值相同时,SQL Server会真的去update还是忽略呢?
- Bloom Filter 大规模数据处理利器
- Oracle undo 表空间管理
- Bitcoin Core开发者:提倡使用信用卡进行日常开销而非比特币
- Geoserver汉语版出来啦!!
- Netty Pipeline源码分析(2)
- Window Mobile SmartPhone智能手机软件开发vs2005 简体中文版 设置指南!