一、簡介
[功能]
將目標文件的一部分或者全部內容拷貝到另外一個目標文件中,或者實現目標文件的格式轉換。
[描述]
objcopy工具使用BFD庫讀寫目標文件,它可以將一個目標文件的內容拷貝到另外一個目標文件當中。objcopy通過它的選項來控制其不同的動作,它可以將目標文件拷貝成和原來的文件不一樣的格式。需要注意的是objcopy能夠在兩種格式之間拷貝一個完全鏈接的文件,在兩種格式之間拷貝一個可重定位的目標文件可能不會正常地工作。
objcopy在做轉換的時候會創建臨時文件,然后將這些臨時文件刪除。objcopy使用BFD來做它所有的轉換工作;它訪問BFD中描述的所有格式,可以不必指定就識別大多數的格式。
通過指定輸出目標為srec(例如 -O srec),objcopy可以用來生成S-record文件。
通過指定輸入目標為而進制文件(例如-O binary),objcopy可以生成原始格式的二進制文件。當objcopy生成一個原始格式的二進制文件的時候,它會生成輸入的目標文件的基本內存拷貝,然后所有的標號和可重定位信息都會被去掉。內存拷貝開始於最低段的加載地址,拷貝到輸出文件。
當生成一個S-record或者原始的二進制文件的時候,可以使用-S這個很有用的選項選項來移除一些包含調試信息的節。有時-R可以用來移除一些二進制文件不需要的節。
二、命令格式
objcopy [選項]... 輸入文件 [輸出文件]
選項參見
http://blog.chinaunix.net/uid-9525959-id-2001841.html
http://www.cnblogs.com/openix/archive/2012/04/08/2437384.html
三、使用實例
1)保存調試符號到文件
objcopy --only-keep-debug [被提取的文件] [提取出來的調試符號文件,建議加.debug后綴]
2)添加調試符號到文件
objcopy --add-gnu-debuglink=[debug文件] [需要添加debug信息的文件]
http://blog.chinaunix.net/uid-9525959-id-2001841.html
