CONFIG_CROSS_COMPILE是一個(gè)配置選項(xiàng),可在內(nèi)核配置時(shí)候指定。如果在配置內(nèi)核時(shí)候沒有指定CONFIG_CROSS_COMPILE,也沒有在編譯參數(shù)指定CROSS_COMPILE,則會采用本地編譯器進(jìn)行編譯。
進(jìn)行ARM嵌入式Linux開發(fā),必須指定交叉編譯器,可以在內(nèi)核配置通過CONFIG
_CROSS_COMPILE指定交叉編譯器,也可以通過CROSS_COMPILE指定。假定使用的交叉編譯器是arm-linux-gnueabihf-gcc,則指定CROSS_COMPILE為arm-linux-gnueabihf-:
或者在Makefile中,直接指定CROSS_COMPILE的值:
注意:CROSS_COMPILE指定的交叉編譯器必須事先安裝并正確設(shè)置系統(tǒng)環(huán)境變量;如果沒有設(shè)置環(huán)境變量,則需使用絕對地址,例如:
如果同時(shí)指定了ARCH和CROSS_COMPILE,則在編譯的時(shí)候,只需簡單的make就可以了。
1.1.2子目錄的Makefile
在內(nèi)核源碼的子目錄中,幾乎每個(gè)子目錄都有相應(yīng)的Makefile文件,管理著對應(yīng)目錄下的代碼。對該目錄的文件或者子目錄的編譯控制,Makefile中有兩種表示方式,一種是默認(rèn)選擇編譯,用obj-y表示,如: