交叉編譯選項
編譯Linux,通常只需要運行make menuconfig
配置要編譯的模塊,然后運行make
。Linux默認是做本地編譯,也就是編譯位本機使用的內核。
在嵌入式開發中,經常需要交叉編譯,要做交叉編譯的話,需要在make
命令后加上宏定義,如交叉編譯為arm目標:
makeARCH=armCROSS_COMPILE=arm-linux-
ARCH=arm
:表示目標CPU為ARM架構
CROSS_COMPILE=arm-linux-
:
表示編譯過程使用的交叉編譯鏈為arm-linux
當然也可以直接修改Makefile
中的ARCH
和CROSS_COMPILE
宏定義,以此實現同樣的效果。但是不建議直接修改Makefile。
源碼與目標文件分離
Linux內核編譯過程會產生很多的文件,包括目標文件、臨時文件等等,默認情況下,編譯生成的文件會存放在內核源碼目錄。
當你使用git status
顯示自己對內核代碼的修改時也會把這些臨時文件顯示出來,而且提交還必須一個文件一個文件地指定,相當麻煩。
因此我們可以在父目錄創建一個存放編譯文件的目錄,如build-kernel
,然后再make
命令后面加上宏定義:
makeO=../build-kernel
這樣在編譯Linux內核時,所有編譯產生的文件,都會放在build-kernel目錄,如果build-kernel目錄不存在,也會自動創建。這樣可以實現Linux內核源碼與編譯產生的文件分離。
-
內核
+關注
關注
3文章
1384瀏覽量
40442 -
Linux
+關注
關注
87文章
11351瀏覽量
210499 -
源碼
+關注
關注
8文章
653瀏覽量
29508 -
編譯
+關注
關注
0文章
662瀏覽量
33067
發布評論請先 登錄
相關推薦
linux操作系統交叉編譯環境的建立方法
Linux操作系統交叉編譯環境的建立方法
Linux QT5程序編譯準備源碼
瑞芯微RK3568開發板源碼編譯與交叉編譯環境搭建
arm-linux的交叉編譯環境解析
定制ARM For Linux交叉編譯工具詳細介紹
【Linux】嵌入式Linux系統的移植(上篇:交叉編譯器、連接方式)
![【<b class='flag-5'>Linux</b>】嵌入式<b class='flag-5'>Linux</b>系統的移植(上篇:<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>器、連接方式)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式Linux開發環境搭建-(6)交叉編譯QT4.8.7源碼生成qmake工具
![嵌入式<b class='flag-5'>Linux</b>開發環境搭建-(6)<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>QT4.8.7<b class='flag-5'>源碼</b>生成qmake工具](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論