objcopy

objcopy [optionsinfile [outfile]

Copy the contents of the input object file to another file, optionally changing the file format in the process (but not the endian-ness). If outfile is not specified, objcopy creates a temporary file and renames it to infile when the copy is complete, destroying the original input file. The GNU Binary File Descriptor (BFD) library is used to read and write the object files.

Options

--add-section section=file

Add a new section to the output object file with the specified section name and the contents taken from the specified file. Available only for formats that allow arbitrarily named sections.

--alt-machine-code=n

If the output architecture has alternate machine codes, use the nth code instead of the default.

-b n--byte=n

Copy only every nth byte. Header data is not affected. The value of n can be from 0 to interleave-1, where interleave is specified by -i(default is 4). This option is useful for creating files to program ROM and is typically used with srec as the output format.

-B bfdarch--binary-architecture=bfdarch

Set the output architecture to bfdarch (e.g., i386) for transforming a raw binary file into an object file. Otherwise, this option is ignored. After the conversion, your program can access data inside the created object file by referencing the special symbols _binary_objfile_start,_binary_objfile_end, and _binary_objfile_size.

--change-addresses=incr--adjust-vma=incr

Change the VMA and LMA addresses of all sections, plus the start address, by adding incr. Changing section addresses is not supported by all object formats. Sections are not relocated.

--change-leading-char

For object formats that use a special character (such as an underscore) to begin symbols, change the leading character when converting between formats. If the character is the same in both formats, the option has no effect. Otherwise, it adds, removes, or changes the leading character as appropriate for the output format.

--change-section-address section{=|+|-}val,--adjust-section-vma section{=|+|-}val

Set or change the VMA and LMA addresses of the specified section. With =, set the section address to the specified value; otherwise, add or subtract the value to get the new address.

--change-section-lma section{=|+|-}val

Set or change the LMA address of the specified section. With =, set the section address to the specified value; otherwise, add or subtract the value to get the new address.

--change-section-vma section{=|+|-}val

Set or change the VMA address of the specified section. With =, set the section address to the specified value; otherwise, add or subtract the value to get the new address.

--change-start incr--adjust-start incr

Add incr to the start address to get a new start address. Not supported by all object formats.

--change-warnings--adjust-warnings

Issue a warning if the section that is specified in one of the options --change-section-address--change-section-lma, or --change-section-vma does not exist.

--debugging

Convert debugging information if possible.

-F bfdname--target=bfdname

Set the binary format for both input and output files to the binary file descriptor name bfdname. No format translation is done. Use the -hoption for a list of supported formats for your system.

-g--strip-debug

Do not copy debugging information.

-G symbol--keep-global-symbol=symbol

Copy only the specified global symbol, making all other symbols local to the file. May be specified multiple times.

--gap-fill=val

Fill gaps between sections with the specified value; applies to the load address (LMA) of the sections.

-h--help

Print help information, including a list of supported target object formats, then exit.

-i interleave--interleave=interleave

Copy one out of every interleave bytes. Use -b to set the byte to copy (default is 4). This option is ignored if -b is not specified.

-I bfdname--input-target=bfdname

Set the binary file format of the input file using its binary file descriptor name, bfdname.

-j section--only-section=section

Copy only the specified section. May be specified multiple times.

-K symbol--keep-symbol=symbol

Copy only the specified symbol from the source file. May be specified multiple times.

--keep-global-symbols=filename

Apply the option --keep-global-symbol to each symbol listed in the specified file. The file should have one symbol per line, with comments beginning with a hash mark (#). May be specified multiple times.

--keep-symbols=file

Apply the option --keep-symbol to each symbol listed in the specified file. The file should have one symbol per line, with comments beginning with a hash mark (#). May be specified multiple times.

-L symbol--localize-symbol=symbol

Make the specified symbol local. May be specified multiple times.

--localize-symbols=filename

Apply the option --localize-symbol to each symbol listed in the specified file. The file should have one symbol per line, with comments beginning with a hash mark (#). May be specified multiple times.

-N symbol--strip-symbol=symbol

Do not copy the specified symbol. May be specified multiple times.

--no-change-warnings--no-adjust-warnings

Do not issue a warning even if the section specified in one of the options --change-section-address--change-section-lma, or --change-section-vma does not exist.

-O bfdname--output-target=bfdname

Set the binary file format of the output file using its binary file descriptor name, bfdname. The format srec generates S-records (printable ASCII versions of object files), and binary generates a raw binary file. Use -h for other available formats.

-p--preserve-dates

Preserve the input file's access and modification dates in the output file.

--pad-to=addr

Pad the output file up to the load address. Use the fill value specified by --gap-fill (default is 0).

-R section--remove-section=section

Do not copy any section with the specified name. May be specified multiple times.

--redefine-sym old=new

Change the name of the symbol old to new.

--remove-leading-char

If the first character of a global symbol is a special character (such as an underscore) used by the input object file format, remove it. Unlike--change-leading-char, this option always changes the symbol name when appropriate, regardless of the output object format.

--rename-section oldname=newname[,flags]

Rename a section from oldname to newname, optionally also changing the flags to flags.

-S--strip-all

Do not copy relocation and symbol information.

--set-section-flags section=flags

Set flags for the specified section as a comma-separated string of flag names. Not all flags are meaningful for all object formats. The possible flags are alloccodecontentsdatadebugloadnoloadreadonlyrom, and share.

--set-start=val

Set the start address of the new file to the specified value. Not supported by all object formats.

--srec-forceS3

Force all srec output records to be type S3 records.

--srec-len=ival

Set the maximum length of srec output records to the specified value. The length includes the addressdata, and crc fields.

--strip-symbols=filename

Apply the option --strip-symbol to each symbol listed in the specified file. The file should have one symbol per line, with comments beginning with a hash mark (#). May be specified multiple times.

--strip-unneeded

Strip all symbols not needed for relocation processing.

-v--verbose

Run in verbose mode, listing all object files modified; for archives, list all archive members.

-V--version

Print version information and exit.

-W symbol--weaken-symbol=symbol

Make the specified symbol weak. May be specified multiple times.

--weaken

Make all global symbols weak.

--weaken-symbols=filename

Apply the option --weaken-symbol to each symbol listed in the specified file. The file should have one symbol per line, with comments beginning with a hash mark (#). May be specified multiple times.

-x--discard-all

Do not copy nonglobal symbols.

-X--discard-locals

Do not copy compiler-generated local symbols (usually those starting with L or ..).

objcopy的更多相关文章

  1. Linux objcopy命令

    一.简介 [功能] 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换. [描述] objcopy工具使用BFD库读写目标文件,它可以将一个目标文件的内容拷贝到另外一个 ...

  2. 使用objdump objcopy查看与修改符号表

    使用objdump objcopy查看与修改符号表动态库Linuxgccfunction    我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库.这时需要查看可执行程序或者动态库中的符 ...

  3. GNU 下命令objcopy 用法

    概念: 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换. 常用转换: 1 把elf格式转成s19格式: objcopy --srec-len --srec-forc ...

  4. GCC编译器原理(一)04------GCC 工具:nlmconv、nm、objcopy、objdump和 ranlib

    1.3.13 nlmconv nlmconv 将可重定位的对象文件(Infile)转换为 NetWare 可加载模块(outfile),并可选择读取头文件信息获取 NLM 头信息. 选项,描述 -I ...

  5. arm-linux-gcc/ld/objcopy/objdump参数总结【转】

    arm-linux-gcc/ld/objcopy/objdump参数总结 转自:http://blog.csdn.net/muyuyuzhong/article/details/7755291 arm ...

  6. (笔记)arm-linux-gcc/ld/objcopy/objdump参数总结

    说明:gcc是编译器,负责对c代码的编译, ld是连接器 负责将多个*.o的目标文件链接成elf可执行文件.elf可执行文件是unix常用的可执行文件类型,就像windows的exe文件.elf文件中 ...

  7. binutils工具集之---objcopy,ranlib,size,strings,strip

    objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中.objcopy使用GNU BFD库去读或写目标文件.objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式 ...

  8. Linux 程式減肥(strip & objcopy)(转载)

    转自:http://calamaryshop.blogspot.com/2011/11/linux-strip-objcopy.html 對於設計嵌入式Linux系統的研發人員來說,記憶體的空間是非常 ...

  9. 使用objcopy实现将文件编译进执行程序

    一.简介  工作中可能遇到将一个文件编译进执行程序的需求,例如bin文件.jpg文件等等.实现的方法可以使用脚本来将文件内容写入一个新的C源文件数组,达成编译进程序的目的. 现在介绍一种简单.快捷的方 ...

随机推荐

  1. backup site collection

    http://stackoverflow.com/questions/5376380/sharepoint-2010-change-sitecollection-urlstsadm -o backup ...

  2. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

  3. extern "C"——用“C”来规约在C++中用C的方式进行编译和链接

    C++中的extern “C”用法详解     extern "C"表明了一种编译规约,其中extern是关键字属性,“C”表征了编译器链接规范.对于extern "C& ...

  4. VS连接远程数据库,连接sqlserver2008,显示“基础提供程序在 Open 上失败”

    今天安装完成VS2012后,在调试2010的程序的时候,出现“基础提供程序在 Open 上失败”,于是用vs连接远程sql2008,才发现问题是:“已成功与服务器连接,但是登录前的握手期间发生错误”, ...

  5. 图片轮播插件-carouFredSel

    carouFredSel图片轮播插件基于Jquery,比较常规的轮播插件,支持滚轮及键盘左右按键,加入其它插件可实现更加复杂的特效. 主页地址:http://caroufredsel.dev7stud ...

  6. java 并发编程

    闭锁 一种可以延迟线程的进度直到其到达终止状态.可以用来确保某些活动直到其他活动都完成后才继续执行 例如: 确保某个计算在其需要的所有资源都被初始化了之后才继续执行. 确保某个服务在其他依赖的服务都启 ...

  7. js--eval函数

    前言: js的eval函数很牛叉,用了几次--不过都没有记录.试想:如果没有EXT.JQery,怎样将json字符串转换为对象呢? 示例: 定义2个字符串变量s1.s2.其中s1表示一个对象:s2表示 ...

  8. 30个实用的Linux find命令示例

    除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易. 本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令. 首先,在你 ...

  9. 剑指offer--面试题6

    题目:由前序.中序遍历序列重建二叉树 虽然思路能想到,但是实际写却无从下手...下面重现作者代码,多多实践... #include<exception> //首先定义二叉树节点 struc ...

  10. SQL Server 之 事务隔离级别

    SET TRANSACTION ISOLATION LEVEL xxx  -- 每次设置只针对当前事务块 xxx 取值: READ UNCOMMITTED READ COMMITTED REPEATA ...