❶ 编译出的elf可执行文件,哪个段中的内容可以删除
Shell脚本:删除.c文件编译生成的可执行文件elf
c文件生成的可执行文件一般都比较大,因此在不用的情况下可以进行适当的清理,如果.c文件对应生成的可执行文件数量较多,通过命令的方式去删除又较为麻烦,只保证.sh后缀及.c可执行文件不可删除外,其他只要是可执行文件均可删除:因此请注意该文件夹下是否有Makefile之类的可运行文件,请谨慎使用。
❷ 为什么编译器版本出现在我的ELF可执行文件中
我只知道这些啦,到电子词典的官方网站上应该有的!
我买了名人6188电子词典,我看电子词典里的程序都是*.elf的格式,这是用什么编程软件编的阿,在哪里能找到?
ELF(Executable and Linking Format)是可执行连接格式
可执行连接格式是UNIX系统实验室(USL)作为应用程序二进制接口
(Application Binary Interface(ABI)而开发和发布的。工具接口标准委
员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操
作系统之间可移植的二进制文件格式。
用linux的gcc编译器就可以生成elf文件
❸ ELF文件 编译时间
具体如下:
ELF文件格式提供了两种不同的视角,在汇编器和链接器看来,ELF文件是由Section Header Table描述的一系列Section的集合,而执行一个ELF文件时,在加载器(Loader)看来它是由Program Header Table描述的一系列Segment的集合。
目标文件再不同的系统或平台上具有不同的命名格式,在Unix和X86-64 Linux上称为ELF(Executable and Linkable Format, ELF)。
❹ 设有程序1.cpp编译后运行该程序,执行的是什么文件
设有程序1.cpp编译后运行该程序,执行的是1.exe,设有程序1.cpp编译后运行该程序,执行的是1.exe。
❺ Uboot编译为什么没有生成elf格式的文件
1、通过gcc编译出来的是elf文件
2、通过objcpy可以把elf文件转换为bin文件
CC=ppc-gcc
LD=ppc-ld
OBJCOPY=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)输出文件中不要重定位信息和符号信息,缩小了文件尺寸
❻ 如何反编译linux里的elf文件
objmp -S a.out > a.S
❼ iar使用makefile编译
要编译出在 iar开发板上运行的可执行文件,需要使用到交叉编译器 iar-linux-gnueabihf-gcc 来编译,在终端中输入如下命令:
iar-linux-gnueabihf-gcc -g -c led.s -o led.o
上述命令就是将 led.s 编译为 led.o,其中“-g”选项是产生调试信息,GDB 能够使用这些
调试信息进行代码调试。“-c”选项是编译源文件,但是不链接。“-o”选项是指定编译产生的文
件名字,这里我们指定 led.s 编译完成以后的文件名字为 led.o。执行上述命令以后就会编译生
成一个 led.o 文件
2 、arm-linux-gnueabihf-ld 链接文件
arm-linux-gnueabihf-ld 用来将众多的.o 文件链接到一个指定的链接位置。我们在学习SMT32 的时候基本就没有听过“链接”这个词,我们一般用 MDK 编写好代码,然后点击“编
译”,MDK 或者 IAR 就会自动帮我们编译好整个工程,最后再点击“下载”就可以将代码下载
到开发板中。这是因为链接这个操作 MDK 或者 IAR 已经帮你做好了,因此我们现在需要做的就是确定一下本试验最终的可执行文件其运行起始地址,也就是链接地址。这里我们要区分“存储地址”和“运行地址”这两个概念,“存储地址”就是可执行文件存储在哪里,可执行文件的存储地址可以随意选择。“运行地址”就是代码运行的时候所处的地址,这个我们在链接的时候就已经确定好了,代码要运行,那就必须处于运行地址处,否则代码肯定运行出错。比如设备支持 SD 卡、EMMC、NAND 启动,因此代码可以存储到 SD 卡、EMMC 或者 NAND 中,但是要运行的话就必须将代码从 SD 卡、EMMC 或者NAND 中拷贝到其运行地址(链接地址)处,“存储地址”和“运行地址”可以一样,比如STM32 的存储起始地址和运行起始地址都是 0X08000000,输入如下命令
arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
上述命令中-Ttext 就是指定链接地址,“-o”选项指定链接生成的 elf 文件名,这里我们命名
为 led.elf
❽ 如何把.elf格式的文件编译成uimage格式
在终端中输入 gcc 文件名 -o 目标文件名 然后 ./目标文件名 就行了,没有目标文件名,自动存为 a 执行 ./a 就行了。 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,其中多数参数我们