八 交叉工具鏈

2021-06-27 09:44:44 字數 1008 閱讀 6120

1.何為交叉工具鏈?

交叉工具的集合

2.交叉工具:

可以用file命令從本質上檢視用交叉工具和普通工具編譯出來的檔案的屬性是不同的,他們的執行平台不同

3.交叉開發模型:

宿主機   目標機的硬體平台不一樣,在x86平台上產生用於其他平台的程式的過程就是交叉開發

4.交叉編譯器:

#arm-linux -gcc   【選項】       檔名     【選項】  【目標名】

標準gcc的標頭檔案從/usr/include查詢,但是arm-linux-gcc不是,可以用print-search-dirs選項引數顯示她的相關路徑

-c只編譯不鏈結

-g編譯的同時加上除錯資訊,使得在反彙編下有對應關係

5.交叉鏈結器

#arm-linux-ld     -t【鏈結器指令碼檔案】     -o       【目標檔案】     【初始檔名(可以有多個)】

6.交叉elf檔案工具

#arm-linux-readelf     -a     elf檔案

7.當程式不能執行的時候,有如下情況

(1)編譯工具不對,使得程式不能在預訂平台執行

(2)大小端不對,用arm-linux-readelf     -a 檢視elf檔案的頭就可以檢視大小端

(3)缺少庫,用arm-linux-readelf     -d    【編譯出來的檔案】可以看到它需要什麼庫檔案(但是一般只適用於已經可直接執行的檔案)

8.交叉反彙編器

#arm-linux-objdump     -d     -s     已經編譯出來的檔案     >輸出檔名(一般用於由非組合語言生成的可執行檔案)

9.交叉檔案轉換器

一般的elf檔案不能直接執行,一般情況處理器只能執行二進位制檔案,只是linux作業系統自帶elf檔案解析器,所以直接執行的時候能通過,實質上中間由作業系統做了轉換工作

#arm-linux-objcopy     -o     輸出檔案的格式     輸入檔名     輸出檔名

交叉工具鏈

理,但由於嵌入式軟體的執行平台不是本地,所以要做一些特殊處理,讓編譯環境信賴的類庫脫離本地信 賴,使用嵌入式平台的類庫來進行鏈結,處理這一過程就叫作交叉編譯工具鏈。機是執行嵌入式軟體的硬體平台。o 只啟用預處理,編譯,和彙編,也就是他只把程式做成obj檔案 wall 指定產生全部的警告資訊 o2 編...

安裝交叉工具鏈

使用國嵌提供的工具包arm tools.tar.gz,首先解壓 tar xvzf arm tools.tar.gz cd arm tools tar xvzf arm linux gcc 4.3.2.tgz c 指定解壓到根目錄去 解壓到 usr local arm 4.3.2 還需修改環境變數 v...

安裝交叉工具鏈

本文以openwrt x86的工具鏈為例 製作openwrt 的工具鏈 參考 tar xvf openwrt toolchain x86 generic gcc 4.8 linaro uclibc 0.9 33.2 linux i686 tar.bz2cd openwrt toolchain x86...