交叉編譯選項(xiàng)
編譯Linux,通常只需要運(yùn)行make menuconfig
配置要編譯的模塊,然后運(yùn)行make
。Linux默認(rèn)是做本地編譯,也就是編譯位本機(jī)使用的內(nèi)核。
在嵌入式開發(fā)中,經(jīng)常需要交叉編譯,要做交叉編譯的話,需要在make
命令后加上宏定義,如交叉編譯為arm目標(biāo):
makeARCH=armCROSS_COMPILE=arm-linux-
ARCH=arm
:表示目標(biāo)CPU為ARM架構(gòu)
CROSS_COMPILE=arm-linux-
:
表示編譯過程使用的交叉編譯鏈為arm-linux
當(dāng)然也可以直接修改Makefile
中的ARCH
和CROSS_COMPILE
宏定義,以此實(shí)現(xiàn)同樣的效果。但是不建議直接修改Makefile。
源碼與目標(biāo)文件分離
Linux內(nèi)核編譯過程會(huì)產(chǎn)生很多的文件,包括目標(biāo)文件、臨時(shí)文件等等,默認(rèn)情況下,編譯生成的文件會(huì)存放在內(nèi)核源碼目錄。
當(dāng)你使用git status
顯示自己對(duì)內(nèi)核代碼的修改時(shí)也會(huì)把這些臨時(shí)文件顯示出來,而且提交還必須一個(gè)文件一個(gè)文件地指定,相當(dāng)麻煩。
因此我們可以在父目錄創(chuàng)建一個(gè)存放編譯文件的目錄,如build-kernel
,然后再make
命令后面加上宏定義:
makeO=../build-kernel
這樣在編譯Linux內(nèi)核時(shí),所有編譯產(chǎn)生的文件,都會(huì)放在build-kernel目錄,如果build-kernel目錄不存在,也會(huì)自動(dòng)創(chuàng)建。這樣可以實(shí)現(xiàn)Linux內(nèi)核源碼與編譯產(chǎn)生的文件分離。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40276 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
源碼
+關(guān)注
關(guān)注
8文章
639瀏覽量
29185 -
編譯
+關(guān)注
關(guān)注
0文章
657瀏覽量
32852
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論