elf[exective linked file]: 一种为Linux系统所采用的通用文件格式,支持动态链接和重定位。 flat:扁平格式。elf文件有很大的头文件,flat格式对文件头和一些段信息做了简化,可执行程序小,适于嵌入式系统。
elf2flt就是将elf格式转换为flt格式。
在编译器链接的时候一般就可以使用“-elf2flt”选项直接编译出flt格式的结果。
连接器是将所有编译器和汇编器的输出文件连接成一个二进制映象的工具。二进制映象有很多种不同格式,而Flat、AOUT、COFF、PE和ELF是最常见的几种。你是否还记得,我们在选择的连接器是LD,它有很多功能。现在存在很多不同版本的LD,它们都能将产生你需要的二进制映象格式。但无论你选用哪种格式,在输出文件中都会出现三个区域,Text(或者Code),Data和BSS区。Text(或者Code)区是只读的代码区。Data区是可读可写的数据区,举例来说,你在程序定义了一个变量并给它赋值5,那么这个“5”就被存储在Data区。而BSS区则是可读可写且没有初始化的数据区。它存储着未赋任何值的数组。注意,BSS区是一个虚拟的区域它不存在于二进制映像中,但当二进制映像被加载后,它就存在于内存中了。
阅读(1815) | 评论(2) | 转发(0) |