用編譯工具將源碼文件編譯成可執(zhí)行文件的過程并不是一步到位的,其中要經(jīng)過一個類似工廠流水線的過程,交叉編譯工具中包含負責處理各個環(huán)節(jié)的功能工具,所以叫做交叉編譯工具鏈。
編譯的一般過程分為:
預編譯->編譯->匯編->鏈接->生成elf文件->轉(zhuǎn)換為二進制可支持bin文件。
預編譯Pre-compile階段:主要是對頭文件#include 、宏定義#define等進行展開。
編譯compile階段:主要是將我們的.c文件編譯成匯編.s文件。
匯編Assembly階段:將匯編文件.s編譯成為目標文件.o。
鏈接Link階段:將生成.o文件鏈接生成.elf文件。
轉(zhuǎn)換階段:將生成的.elf文件轉(zhuǎn)換成為可執(zhí)行二進制.bin文件。
而這些編譯步驟是通過make工具解析Makefile文件來執(zhí)行。Makefile 文件中描述了整個工程所有文件的編譯順序、編譯規(guī)則、依賴關(guān)系等。關(guān)于Makefile更多內(nèi)容,請閱讀后面Makefile章節(jié)。
閱讀全文