裸機程式中的makefile是把程式的編譯和鏈結過程分開的,編譯要使用編譯器gcc,鏈結使用鏈結器ld
示例:led.bin: start.o
arm-linux-ld -ttext 0x0 -o led.elf $^
arm-linux-objcopy -o binary led.elf led.bin
arm-linux-objdump -d led.elf > led_elf.dis
gcc mkv210_image.c -o mkx210
./mkx210 led.bin 210.bin
%.o : %.s
arm-linux-gcc - o $@ $< -c
%.o : %.c
arm-linux-gcc - o $@ $< -c
clean:
rm *.o *.elf *.bin *.dis mkx210 -f
1.%.o是目標,%.c,%.s是依賴
2.$@代表的是%.o檔案,$《代表是%.s和%.c
3.-c 代表只編譯不鏈結,-o用來指定檔案名字
5.鏈結器得到的led.elf其實就是我們的可執行程式(如果是在作業系統下,就可以直接執行,但裸機中我們需要的是可以燒寫的檔案)可燒寫的檔案就叫做映象,也就是image
6.arm-linux-objcopy -o binary led.elf led.bin 使用led.elf為原材料來生成led.bin(映象image)
7.arm-linux-objdump -d led.elf >led_elf.dis 把編譯好的.elf格式的檔案轉為對應的彙編檔案,得到彙編**
8.gcc mkv210_image.c -o mkv210在主機(linux系統中進行編譯鏈結生成可執行檔案mkv210)
9. ./mkv210 led.bin 210.bin 210.bin是通過sd卡啟動時的裸機映象,這個映象由led.bin為原材料,mkv210為工具加工得到
makefile語法示例
edit main.o kbd.o cc o edit main.o kdb.o main.o main.c defs.h cc c main.c kbd.o kbd.c defs.h command.h cc c kbd.c clean rm o edit makefile中使用變數 object...
makefile寫法簡單示例
作為linux或unix下的程式開發人員,大家一定都遇到過makefile,用make命令來編譯自己寫的程式確實是很方便。一般開發情況下,大家都是手工寫乙個簡單makefile。下面先給乙個最簡單的示例 makefile示例 object main.o function.o change objec...
makefile介紹及示例
乙個開發工程會有很多的原始檔,它們按型別 功能 模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯等。makefile檔案關係到整個工程的編譯規則。寫好的makefile,只要執行make命令,就會按makefile裡定義...