交叉工具鏈和makefile

2022-05-06 05:06:11 字數 1410 閱讀 5331

交叉工具鏈:

arm-linux-gcc:交叉編譯器

arm-linux-ld:交叉聯結器

arm-linux-readelf:交叉elf檔案工具

arm-linux-objdump:交叉反彙編器

arm-linux-objcopy:交叉轉換器

-a 是顯示該檔案的資訊

-o bfdname 輸出的格式

-f bfdname 同時指明原始檔,目的檔案的格式

-r sectionname 從輸出檔案中刪除掉所有名為sectionname的段

-s 盡可能反彙編出源**

-d 顯示檔案中所有彙編資訊,反彙編

-c 只編譯不鏈結  

-g 附加除錯資訊:c和彙編能對應起來

arm-linux-readelf -d hello 檢視這個應用程式需要那些庫

file 這個檔案,可以看到這個檔案在什麼平台上執行(x86或者arm等等)

arm-linux-objdump:反彙編工具

arm-linux-objcopy -o binary led.elf led.bin:-o是指定輸出什麼格式的檔案,是binary(二進位制),後面跟上輸入檔案和輸出檔案

makefile:make工作主要依賴於乙個叫做makefile的檔案,這個檔案描述了整個程式的編譯、連線等規則。其中包括:那些原始檔需要編譯以及如何編譯,如何最後產生我們想要的執行檔案。

目標:依賴

命令all: led.o

arm-linux-ld -tled.lds -o led.elf led.o

arm-linux-objcopy -o binary led.elf led.bin

led.o : led.s

arm-linux-gcc -g -o led.o -c led.s

.phony: clean

clean:

rm *.o led.elf led.bin

make 後面跟 你想要的那個檔案,就會去執行makefile裡的只生成你需要檔案的命令

make後面不接,就執行makefile裡的第一條命令,所以稱第一條規則裡的就是最終目標

去回顯make -f file

all: start.o main.o mmu.o led.o button.o interrupt.o

arm-linux-ld -tgboot.lds -o gboot.elf $^

arm-linux-objcopy -o binary gboot.elf gboot.bin

%.o : %.s

arm-linux-gcc -g -c $^

%.o : %.c

arm-linux-gcc -g -c $^

.phony: clean

clean:

rm *.o *.elf *.bin

交叉編譯和交叉工具鏈(一)

一 交叉編譯簡介 1 什麼是交叉編譯 1.1 本地編譯 解釋什麼是交叉編譯之前,先要明白乙個概念 本地編譯 我們之前常見的軟體開發,都是屬於本地編譯 在當前的pc下,x86的cpu下,直接編譯出來程式,可以執行的程式 或者庫檔案 其可以直接在當前的環境,即x86的cpu下,當前電腦中,執行。此時的編...

交叉工具鏈

理,但由於嵌入式軟體的執行平台不是本地,所以要做一些特殊處理,讓編譯環境信賴的類庫脫離本地信 賴,使用嵌入式平台的類庫來進行鏈結,處理這一過程就叫作交叉編譯工具鏈。機是執行嵌入式軟體的硬體平台。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...