objcopy的使用

 objcopy用于将object的部分获全部内容拷贝到另一个object,从而可以实现格式的变 换。

objcopy可用用于将文件转换成S-record格式或者raw二进制格式。

例如,

         xxxx-elf-objcopy –O srec test.o test.s19

则将test.o转换成s-record文件中。通常涉及到text段。

         xxxx-elf-objcopy –O binary test.o test.bin

则将test.o转换成raw binary文件格式。

       当将object文件转换成raw binary格式时,通常将去除掉symbols和relocation信息。在生成s-record过程中,有时需要用选项“-S”,“-R”去除掉 binary文件,s-record文件不需要的相应信息。

此外,还需要注意到使用objcopy不能够改变大、小endian。

 

选项
 Desc
 
infile/outfile
 源文件/目标文件
 
-I bfdname

--input-target=bfdname
 输入文件的bfdname,可取值elf32-little,elf32-big等,可用 用objdump –I查看相应的信息
 
-O bfdname

--output-target=bfdname
 输出文件的bfdname
 
-F bfdname

--target=bfdname
 指定输入、输出文件的bfdname,目标文件格式
 
-j sectionname

--only-section=sectionname
 只将由sectionname指定的section拷贝到输出文件
 
-R sectionname

--remove-section=sectionname
 去除掉由sectionname指定的section
 
-S

--strip-all
 去掉源文件的符号信息和relocation信息
 
-g

--strip-debug
 去除掉调试符号信息和相关的段
 
-K symbolname

--keep-symbol=symbolname
 保留由symbolname指定的符号信息
 
-N symbolname

--strip-symbol=symbolname
 去除掉由symbolname指定的符号信息
 
-G symbolname

--keep-global-symbol=symbolname

-L symbolname

--localize-symbol=symbolname

-W symbolname

--weaken-symbol=symbolname

-w

--wildcard

-x

--discard-all

-X

--discard-locals
 处理符号
 
-b byte

--byte=byte
 每byteth byte中保留1 byte
 
-i interleave

--interleave=interleave
 每隔interleave字节拷贝1 byte
 
--gap-fill val
 在section中填充val
 
--set-start val
 设定新文件的start address
 
--change-start incr

--adjust-start incr
 调整start address
 
--change-address incr

--adjust-vma incr
 调整所有sections的VMA(virtual memory address)和LMA(linear memory address)。
 
--change-section-address

        section{=,+,-}val

--adjust-section-vma section

       {=,+,-}val
 调整指定section的VMA/LMA地址
 
--set-section-flags section=flag
 指定指定section的flag,flag的取值可以alloc,contents, load, noload, readonly, code, data, rom, share, debug
 
--add-section sectionname=filename
 添加一个section,该section的内容为filenmae的内容
 
--rename-section oldname=

    newname[,flags]
 更改section的名
 
-V

--version
 objcopy的version number


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangxb_csu/archive/2008/10/31/3193824.aspx

 

你可能感兴趣的:(Linux)