GNU binutils是一組二進位工具集。Binutils是GNU工具之一,它包括連接器、彙編器和其他用於目標檔案和檔案的工具,它是二進位代碼的處理維護工具。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip.
ar用於建立、修改、提取檔案檔案(archive)
objcopy可以將一種格式的目標檔案轉化為另外一種格式的目標檔案
file命令用來判別檔案類型
objdump用來顯示目標檔案的資訊
gprof被用來測配量序的效能
nm用來列出目標檔案中的符號,可以協助程式員定位和分析執行程式和目標檔案中的符號資訊和它的屬性
交叉編譯工具鏈是一個由編譯器、連接器和解譯器組成的綜合開發環境,交叉編譯工具鏈主要由binutils、gcc和glibc 3個部分組成。建立交叉編譯工具鏈是一個相當複雜的過程,如果不想自己經曆複雜繁瑣的編譯過程,網上有一些編譯好的可用的交叉編譯工具鏈可以下載,但就以學習為目的來說讀者有必要學習自己製作一個交叉編譯工具鏈。步驟如下:
構建交叉編譯器的第一個步驟就是確定目標平台。本章的目的是講述建立基於ARM平台的交叉工具鏈,所以目標平台名為arm-linux-gnu。
方法一 分步編譯和安裝交叉編譯工具鏈所需要的庫和原始碼,最終產生交叉編譯工具鏈。方法二 通過Crosstool指令碼工具來實現一次編譯產生交叉編譯工具鏈。方法三 直接通過網上(ftp.arm.kernel.org.uk)下載已經製作好的交叉編譯工具鏈(沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程式)。
編譯器需要通過系統核心的標頭檔來獲得目標平台所支援的系統函數調用所需要的資訊。對於Linux核心,最好的方法是下載一個合適的核心,然後複製獲得標頭檔。需要對核心做一個基本的配置來產生正確的標頭檔;不過,不需要編譯核心。
Crosstool是一組指令碼工具集,可構建和測試不同版本的gcc和glibc,用於那些支援glibc的體繫結構。
來自:構建ARM Linux交叉編譯工具鏈 詳解(http://linux.chinaunix.net/techdoc/develop/2008/04/11/991424.shtml)