当前位置: 首页 > wzjs >正文

深圳市住房和建设局网站变更seo外包上海

深圳市住房和建设局网站变更,seo外包上海,电子商务网站建设策划书,口碑营销的名词解释从c文件到二进制可执行文件主要经过预处理、编译、汇编和链接的过程,而在这些过程中参与到的文件类型主要有源文件、头文件、目标文件、静态库、动态库和可执行文件。下面表格对这些文件的生成过程和涉及到的步骤名称做个总结。 过程涉及文件编译source header -&…

从c++文件到二进制可执行文件主要经过预处理、编译、汇编和链接的过程,而在这些过程中参与到的文件类型主要有源文件、头文件、目标文件、静态库、动态库和可执行文件。下面表格对这些文件的生成过程和涉及到的步骤名称做个总结。

过程涉及文件
编译source + header -> .s 对源文件和头文件进行预处理和编译,生成汇编代码文件。
汇编.s -> .o 对汇编代码进行汇编生成目标文件,目标文件中存储的已经是机器语言了。
链接(.o -> .a )/(.o -> .so)/ (.o + .a + .so-> executable) 目标文件可以链接成静态库或者动态库,也可以和静态库和动态库链接成为可执行文件

从上面的编译过程我们可以看出目标文件在编译过程中扮演了一个非常重要的角色。我们在编译过程中只需要一条指令就能够直接从源码生成可执行文件,往往忽略了在其中产生重要作用的目标文件。如果想要搞懂编译的原理和程序运行的底层逻辑,目标文件是我们绕不过去的一道坎。下面我们来分析一下目标文件到底是什么样的,以及在编译过程中起到了什么样的作用。

1. 目标文件是什么样的?

目标文件是以段的形式存储的,而不同段的内容都是不同的,例如代码和数据会放在不同的段。目标文件的开头是一个“文件头”,它描述了该文件是否可执行、是静态库还是动态库以及入口地址(如果是可执行文件)、目标硬件、目标操作系统等信息。之所以文件头会存储这么多看似和目标文件无关的信息是因为静态库、动态库和可执行文件都是同一种文件格式,叫做ELF。 这些冗余信息都是用来解析ELF文件的具体类型的。文件头还包括段表,一个描述文件中各个段的数据的数组。段表描述了文件中各个段在文件中的偏移位置及段的属性等。

int printf(const char* format, ...);int global_init_var = 84; //global variable inited
int global_uninit_var; //global variable uninitedvoid func1(int i) //function in the object
{printf("%d\n", i); //call function out of the object
}int main(void)
{static int static_var = 85;static int static_var2;int a = 1;int b;func1(static_var + static_var2 + a + b); //call function in the objectreturn a;
}

使用$ gcc -c SimpleSection.cpp命令编译这个文件可以得到SimpleSection.o文件。
使用$ objdump -h SimpleSection.o查看目标文件的结构。需要注意的是,这条命令是对目标文件的文件头中的段表进行解析。
目标文件
解析得到的表的各列的信息为:

IdxNameSizeVMALMAFile offAlgn
索引段名段的长度虚拟地址加载地址偏移地址对齐

根据我们获得的各个段的信息我们可以得到目标文件大致的结构如下图所示:
elf结构
上面需要注意的是.bss段在elf中并不存在所以它的属性里面并没有content字段。.bss段是用来为未初始化的全局变量和局部静态变量预留位置而已,会在加载过程中用到。还有两块padding指的是对齐产生的空白段,第一段是.data进行4字节对齐产生的,第二段是.note.gnu.property进行8字节对齐产生的。

2. 各个段解析

2.1 .text段

2.2 .data段

2.3 .bss段

3. ELF文件结构解析

http://www.dtcms.com/wzjs/297609.html

相关文章:

  • 福永网站建设阿里关键词排名查询
  • 网站建设公司天强科技佛山网站营销推广
  • 帮客户做网站挣钱吗百度非企渠道开户
  • 蓟县做网站网游推广
  • 网站建设型网站横幅(banner)图片厦门网站关键词推广
  • 网站建设优化服务方案模板如何提高自己的营销能力
  • 官方网站建设手机银行网站权重查询
  • 微信视频网站建设多少钱软文发稿平台
  • 武汉专业做网站的公司有哪些seo电商运营是什么意思
  • html5 中文网站模板网站搜索引擎优化工具
  • 哈尔滨最好的网站建设公司seo属于什么职业部门
  • 新疆建设工程信息网网官网网站seo基础优化
  • 建设网站说只给前端源码是什么意思谷歌关键词工具
  • 淮安j经济开发区建设局网站万网域名注册官网阿里云
  • 网站建设公司工作流程湖南企业seo优化首选
  • 千万不要学数字媒体技术武汉seo网站推广培训
  • 找人做淘宝网站多少钱网站建设黄页视频
  • ps怎么做网站模板seo怎么发外链的
  • 毕节做网站优化百度云搜索引擎入口盘搜搜
  • 开发网络新技术的平台搜索引擎排名优化方案
  • 嵌入式培训班多少钱seo专业培训中心
  • 扁平化风格网站模板关键词优化软件排行
  • 保险网站源码数据分析培训
  • 哈尔滨网络科技公司网站网站运营怎么做
  • 网站打开显示站点目录为什么不能去外包公司
  • 怎么看网站的服务器打开网址资料网站
  • 泉州网站制作专业策划方案
  • 上海稼禾建设装饰集团网站最新国际新闻 大事件
  • php制作投票网站兰州seo优化公司
  • 建网站去哪里备案谷歌推广教程