objcopy
objcopy
objcopy [options] infile [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 alloc, code, contents, data, debug, load, noload, readonly, rom, 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 address, data, 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的更多相关文章
- Linux objcopy命令
一.简介 [功能] 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换. [描述] objcopy工具使用BFD库读写目标文件,它可以将一个目标文件的内容拷贝到另外一个 ...
- 使用objdump objcopy查看与修改符号表
使用objdump objcopy查看与修改符号表动态库Linuxgccfunction 我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库.这时需要查看可执行程序或者动态库中的符 ...
- GNU 下命令objcopy 用法
概念: 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换. 常用转换: 1 把elf格式转成s19格式: objcopy --srec-len --srec-forc ...
- GCC编译器原理(一)04------GCC 工具:nlmconv、nm、objcopy、objdump和 ranlib
1.3.13 nlmconv nlmconv 将可重定位的对象文件(Infile)转换为 NetWare 可加载模块(outfile),并可选择读取头文件信息获取 NLM 头信息. 选项,描述 -I ...
- arm-linux-gcc/ld/objcopy/objdump参数总结【转】
arm-linux-gcc/ld/objcopy/objdump参数总结 转自:http://blog.csdn.net/muyuyuzhong/article/details/7755291 arm ...
- (笔记)arm-linux-gcc/ld/objcopy/objdump参数总结
说明:gcc是编译器,负责对c代码的编译, ld是连接器 负责将多个*.o的目标文件链接成elf可执行文件.elf可执行文件是unix常用的可执行文件类型,就像windows的exe文件.elf文件中 ...
- binutils工具集之---objcopy,ranlib,size,strings,strip
objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中.objcopy使用GNU BFD库去读或写目标文件.objcopy可以使用不同于源目标文件的格式来写目的目标文件(也即是说可以将一种格式 ...
- Linux 程式減肥(strip & objcopy)(转载)
转自:http://calamaryshop.blogspot.com/2011/11/linux-strip-objcopy.html 對於設計嵌入式Linux系統的研發人員來說,記憶體的空間是非常 ...
- 使用objcopy实现将文件编译进执行程序
一.简介 工作中可能遇到将一个文件编译进执行程序的需求,例如bin文件.jpg文件等等.实现的方法可以使用脚本来将文件内容写入一个新的C源文件数组,达成编译进程序的目的. 现在介绍一种简单.快捷的方 ...
随机推荐
- cocos2dx中的设计分辨率与屏幕适配策略
1.首先明确几个概念: 设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964) 屏幕分辨率:又叫帧的大小,glview->setF ...
- [Android] ImageView.ScaleType设置图解 【转载】
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android:s ...
- 无废话网页重构系列——(6)HTML主干结构:站点(site)、页面(page)
本文作者:大象本文地址:http://www.cnblogs.com/daxiang/p/4653546.html 在分析和切出设计稿,以及部署项目目录文件后,开始写HTML Demo. 首先,弄出H ...
- [原]android不支持命名的semaphore
之前sem_open在iOS上, 创建命名的semaphore没有问题 (iOS不支持匿名的semaphore), 但是现在Android平台的sem_open时候报错,返回ENOSYS. 命名的se ...
- linux源码阅读笔记 fork函数
在阅读源码的过程中,发现找不到fork函数的定义.后来在linux/init/main.c中找到了这样一条语句 static inline _syscall0(int,fork) 原来这里就是fork ...
- 学习笔记--Grunt、安装、图文详解
学习笔记--Git安装.图文详解 安装Git成功后,现在安装Gruntjs,官网:http://gruntjs.com/ 一.安装node 参考node.js 安装.图文详解 (最新的node会自动安 ...
- C# 面向对象之概念理解(3)
多态 多态是指两个或多个属于不同类的对象,对同一个消息(方法调用)做出不同响应的能力. 多态(<韦氏大词典>)中定义:可以呈现不同形式的能力或状态. C#如何实现多态的知识——即继承上覆载 ...
- linux设置和查看环境变量的方法
1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" ...
- 李洪强iOS开发支付集成之银联支付
iOS开发支付集成之银联支付 银联官网在这里,这里能下载SDK或者是看文档.最新的版本写的简单了很多,看文档一直做下去基本上就没问题了. 首先,SDK在这里下载,里面包含需要的库文件和详细的文档. 银 ...
- lintcode:两个数的和
题目 两数之和 给一个整数数组,找到两个数使得他们的和等于一个给定的数target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是1到n,不 ...