compile,link与run的详细解析
来源:互联网 发布:80c51系列单片机 编辑:程序博客网 时间:2024/05/21 05:18
build一个App,会涉及到comile与link两步操作。
对于OC程序来说,comile一个.m文件会生成.o文件;如果是一个lib工程,compile操作会将工程中了所有的.m文件生成对应的.o,最后打包生成.a库文件。因此,.a库文件就是一堆.o文件的简单集合,不会包含其他的内容,包括资源文件等。
link操作则是将compile之后的.o文件,.a文件,资源文件等,link到一起,生成可执行文件。link操作与compile操作最本质的不同是compile操作不会涉及寻址操作,对于找不到的地址会通过占位符临时占位,只有经过link操作,才会将所有的占位符用真正的地址替换,从而让程序运行变为可能。e.g. A.m经过编译后变为了A.o,里边用到了一个全局变量int b,而b的定义在B.m文件中,A.m只有b的声明,这时,A.o会用一个占位符临时替换b的位置,因此编译不会出错。到了link阶段会把A.o,B.o都link到一起,linker找到b定义的位置,并替换A.o中的占位符。如果linker最终没有找到b的定义,就无法替换A.o中的占位符,会出现“symbol(s) not found”错误。
0 0
- compile,link与run的详细解析
- compile与link区别
- AngularJS指令中的compile与link函数解析
- Compile time& link time&run time
- 指令compile和link函数解析
- COMPILE && LINK
- compile函数与link函数用法
- angular之link和compile的区别
- angular中compile和link的区别
- angularjs compile和link的区别
- angular之link和compile的区别
- vc中的build,run,compile的区别
- Compile,Build/Link和Execute((编译、连接和运行))的联系与区别
- angularjs指令中的compile与link函数详解
- angularjs指令中的compile与link函数详解
- angularjs指令中的compile与link函数详解。
- angularjs指令中的compile与link函数详解
- angularjs指令中的compile与link函数详解
- Maven导出Project依赖的jar包
- 软考- 信息系统项目管理师 复习心得
- ajax格式
- ECMAScript 6新特性简记
- 面向对象的编程(一)
- compile,link与run的详细解析
- SQL server 2008数据库的备份与还原(转)
- url、src与href属性的区别
- lombok介绍及基本使用方法
- C#/.net学习-12-winform基础
- linux下vsftpd的安装与配置说明
- SpringBoot -- 集成Elasticsearch
- eclipse启动错误之一(failed to load the JNI shared library)!
- 一段js面向对象的写法