c语言如何生成elf文件|elf是什么格式

『壹』 用codewarrior怎么生成.elf文件

.o文件就是elf文件啦

『贰』 c语言 linux .o文件 不是ELF格式的 那这是什么文件

.o文件是编译过程中的一个中间文件一次完整的编译,可以分为编译和链接两个阶段编译就是.c生成.o,一般用gcc链接就是.o生成elf,一般用ld不过用gcc也可以完成链接,gcc会识别文件扩展名调用ld的更细分,还有cpp的预编译,as的汇编编译cpp gcc as ld这个是完整的一次编译过程

『叁』 elf是什么格式,怎么运行

我只知道这些啦,到电子词典的官方网站上应该有的!我买了名人6188电子词典专,我看电子词典里的程序都是*.elf的格式属,这是用什么编程软件编的阿,在哪里能找到? ELF(Executable and Linking Format)是可执行连接格式 可执行连接格式是UNIX系统实验室(USL)作为应用程序二进制接口 (Application Binary Interface(ABI)而开发和发布的。工具接口标准委 员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操 作系统之间可移植的二进制文件格式。 用linux的gcc编译器就可以生成elf文件

『肆』 C语言编译到机器码的过程求详细解说,不胜感激

从编码到生成可执行的binary文件是有好几个过程的:(默认已完成编码)1, 预编译(预处理), 也就是替换工作, 先把代码中的宏做替换, 条件编译等会做处理,为编译做作准备;2,编译,包括了语法的检查,汇编代码等中间代码的生成,代码优化,obj文件(也算是目标代码)的生成,已经是有机器码了;3.库的合成,这个不一定有,不是必须的;4.链接, 连接器会按照一定的规则,比如根据连接脚步,把code组织起来,生成elf文件(elf可能不是一个所有通用的格式),这个时候已经可以执行了,里面的可以执行的机器码;5,裁剪, 可以把elf文件中的非必需的段 strip,生成一个更精简的elf文件;6,binary的生成,obj命令可以把elf文件转换成binary文件,binary文件烧录到存储器中可以直击运行。

『伍』 怎样创建真正很小的Linux下的ELF可执行文件

ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。它自最早在 System V 系统上出现后,被 xNIX 世界所广泛接受,作为缺省的二进制文件格式来使用。可以说,ELF是构成众多xNIX系统的基础之一,所以作为嵌入式Linux系统乃至内核驱动程序开发 人员,你最好熟悉并掌握它。其实,关于ELF这个主题,网络上已经有相当多的文章存在,但是其介绍的内容比较分散,使得初学者不太容易从中得到一个系统性的认识。为了帮助大家 学习,我这里打算写一系列连贯的文章来介绍ELF以及相关的应用。这是这个系列中的第一篇文章,主要是通过不同工具的使用来熟悉ELF文件的内部结构以及 相关的基本概念。后面的文章,我们会介绍很多高级的概念和应用,比方动态链接和加载,动态库的开发,C语言Main函数是被谁以及如何被调用的,ELF格 式在内核中的支持,Linux内核中对ELF section的扩展使用等等。

『陆』 自己怎么加载elf文件,并能调用里面的函数执行

ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。它自最早在 System V 系统上出现后,被 xNIX 世界所广泛接受,作为缺省的二进制文件格式来使用。可以说,ELF是构成众多xNIX系统的基础之一,所以作为嵌入式Linux系统乃至内核驱动程序开发人员,你最好熟悉并掌握它。其实,关于ELF这个主题,网络上已经有相当多的文章存在,但是其介绍的内容比较分散,使得初学者不太容易从中得到一个系统性的认识。为了帮助大家学习,我这里打算写一系列连贯的文章来介绍ELF以及相关的应用。这是这个系列中的第一篇文章,主要是通过不同工具的使用来熟悉ELF文件的内部结构以及相关的基本概念。后面的文章,我们会介绍很多高级的概念和应用,比方动态链接和加载,动态库的开发,C语言Main函数是被谁以及如何被调用的,ELF格式在内核中的支持,Linux内核中对ELF section的扩展使用等等。好的,开始我们的第一篇文章。在详细进入正题之前,先给大家介绍一点ELF文件格式的参考资料。在ELF格式出来之后,TISC(Tool Interface Standard Committee)委员会定义了一套ELF标准。你可以从这里()找到详细的标准文档。TISC委员会前后出了两个版本,v1.1和v1.2。两个版本内容上差不多,但就可读性上来讲,我还是推荐你读 v1.2的。因为在v1.2版本中,TISC重新组织原本在v1.1版本中的内容,将它们分成为三个部分(books):a) Book I介绍了通用的适用于所有32位架构处理器的ELF相关内容b) Book II介绍了处理器特定的ELF相关内容,这里是以Intel x86 架构处理器作为例子介绍c) Book III介绍了操作系统特定的ELF相关内容,这里是以运行在x86上面的 UNIX System V.4 作为例子介绍值得一说的是,虽然TISC是以x86为例子介绍ELF规范的,但是如果你是想知道非x86下面的ELF实现情况,那也可以在中找到特定处理器相关的Supplment文档。比方ARM相关的,或者MIPS相关的等等。另外,相比较UNIX系统的另外一个分支BSD Unix,Linux系统更靠近 System V 系统。所以关于操作系统特定的ELF内容,你可以直接参考v1.2标准中的内容。这里多说些废话:别忘了 Linus 在实现Linux的第一个版本的时候,就是看了介绍Unix内部细节的书:《The of the Unix Operating System》,得到很多启发。这本书对应的操作系统是System V 的第二个Release。这本书介绍了操作系统的很多设计观念,并且行文简单易懂。所以虽然现在的Linux也吸取了其他很多Unix变种的设计理念,但是如果你想研究学习Linux内核,那还是以看这本书作为开始为好。这本书也是我在接触Linux内核之前所看的第一本介绍操作系统的书,所以我极力向大家推荐。(在学校虽然学过操作系统原理,但学的也是很糟糕最后导致期末考试才四十来分,记忆仿佛还在昨天:))好了,还是回来开始我们第一篇ELF主题相关的文章吧。这篇文章主要是通过使用不同的工具来分析对象文件,来使你掌握ELF文件的基本格式,以及了解相关的基本概念。你在读这篇文章的时候,希望你在电脑上已经打开了那个 v1.2 版本的ELF规范,并对照着文章内容看规范里的文字。

『柒』 Uboot编译为什么没有生成elf格式的文件

1、通过gcc编译出来的是elf文件2、通过objcpy可以把elf文件转换为bin文件

CC=ppc-gccLD=ppc-ldOBJCOPY=ppc-obj$(CC)-g$(CFLAG)-cboot.S#先将boot.S文件生成boot.o$(LD)-g-Bstatic-T$(LDFILE)-Ttext0x12345600boot.o–start-group-Mapboot.map-oboot.elf#再将boot.o生成boot.elf$(OBJCOPY)-Obinary-R.note-R.comment-Sboot.elfboot.bin#接着将boot.elf转换为boot.bin#使用-Obinary(或–out-target=binary)输出为原始的二进制文件#使用-R.note(或–remove-section)输出文件中不要.note这个section,缩小了文件尺寸#使用-S(或–strip-all)输出文件中不要重定位信息和符号信息,缩小了文件尺寸

『捌』 C语言如何自制操作系统

操作系统:测试部分,调试部分,核心驱动部分

『玖』 用同一种语言(如c语言)编出来的软件格式为什么会有不同

编译器不同,当然编译出来的就不同了撒。例如: 相同的一个c文件,用gcc编译生成 elf格式的应用程序。用arm-linux-gcc编译出来的elf格式的但是只能运行在ARM体系结构的机子上。


赞 (0)