0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux交叉編譯選項與源碼與目標文件分離

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 11:48 ? 次閱讀

交叉編譯選項

編譯Linux,通常只需要運行make menuconfig配置要編譯的模塊,然后運行make。Linux默認是做本地編譯,也就是編譯位本機使用的內核。

嵌入式開發(fā)中,經常需要交叉編譯,要做交叉編譯的話,需要在make命令后加上宏定義,如交叉編譯為arm目標:

makeARCH=armCROSS_COMPILE=arm-linux-

ARCH=arm:表示目標CPU為ARM架構

CROSS_COMPILE=arm-linux-

表示編譯過程使用的交叉編譯鏈為arm-linux

當然也可以直接修改Makefile中的ARCHCROSS_COMPILE宏定義,以此實現(xiàn)同樣的效果。但是不建議直接修改Makefile。

源碼與目標文件分離

Linux內核編譯過程會產生很多的文件,包括目標文件、臨時文件等等,默認情況下,編譯生成的文件會存放在內核源碼目錄。

當你使用git status顯示自己對內核代碼的修改時也會把這些臨時文件顯示出來,而且提交還必須一個文件一個文件地指定,相當麻煩。

因此我們可以在父目錄創(chuàng)建一個存放編譯文件的目錄,如build-kernel,然后再make命令后面加上宏定義:

makeO=../build-kernel

這樣在編譯Linux內核時,所有編譯產生的文件,都會放在build-kernel目錄,如果build-kernel目錄不存在,也會自動創(chuàng)建。這樣可以實現(xiàn)Linux內核源碼與編譯產生的文件分離。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1336

    瀏覽量

    40083
  • Linux
    +關注

    關注

    87

    文章

    11123

    瀏覽量

    207895
  • 源碼
    +關注

    關注

    8

    文章

    626

    瀏覽量

    28965
  • 編譯
    +關注

    關注

    0

    文章

    646

    瀏覽量

    32664
收藏 人收藏

    評論

    相關推薦

    Linux系統(tǒng)下交叉編譯工具鏈的安裝方法

    今天主要和大家聊一聊,如何使用Linux系統(tǒng)下的交叉編譯工具鏈的方法。
    發(fā)表于 11-21 09:30 ?3060次閱讀

    linux操作系統(tǒng)交叉編譯環(huán)境的建立方法

    基于linux操作系統(tǒng)的應用開發(fā)環(huán)境一般是由目標系統(tǒng)硬件(開發(fā)板)和宿主PC機所構成。目標硬件開發(fā)板用于運行操作系統(tǒng)和系統(tǒng)應用軟件,而目標板所用到的操作系統(tǒng)的內核
    發(fā)表于 04-16 09:22

    Linux操作系統(tǒng)交叉編譯環(huán)境的建立方法

    基于linux操作系統(tǒng)的應用開發(fā)環(huán)境一般是由目標系統(tǒng)硬件(開發(fā)板)和宿主PC機所構成。目標硬件開發(fā)板用于運行操作系統(tǒng)和系統(tǒng)應用軟件,而目標板所用到的操作系統(tǒng)的內核
    發(fā)表于 07-15 15:05

    Linux QT5程序編譯準備源碼

    Linux QT5程序編譯準備源碼  打開網(wǎng)盤到 5_MY-Demo,下載 MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2
    發(fā)表于 03-08 11:27

    瑞芯微RK3568開發(fā)板源碼編譯交叉編譯環(huán)境搭建

    S99myinit文件,寫入如下內容即可實現(xiàn)開機自動連網(wǎng):#!/bin/sh這里注意要替換為自己的WiFi名和密碼,并且要給這個文件可執(zhí)行權限。02RK3568 Linux源碼
    發(fā)表于 02-27 08:52

    交叉編譯linux內核(raspberry_3.6.y)

    一步一步教你交叉編譯linux內核,RPI的內核編譯教程,小眾的東西了
    發(fā)表于 11-03 17:58 ?0次下載

    arm-linux交叉編譯環(huán)境解析

    的主要原因在于,多數(shù)嵌入式目標系統(tǒng)不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉移到高性能的主機中進行。 linux下的交叉
    發(fā)表于 10-31 11:26 ?7次下載

    定制ARM For Linux交叉編譯工具詳細介紹

    是X86)運行,對于ARM開發(fā)者來說,需要一個能在本機編譯、但編譯卻生成ARM運行代碼的一套交叉編譯工具集。 因此,選擇一個與本機工具集相異的特定含義的
    發(fā)表于 04-02 14:38 ?354次閱讀

    判斷Linux文件編譯時是否運用-g選項的方法

    判斷Linux文件編譯時是否運用-g選項的方法
    的頭像 發(fā)表于 06-22 08:40 ?3301次閱讀
    判斷<b class='flag-5'>Linux</b>庫<b class='flag-5'>文件</b><b class='flag-5'>編譯</b>時是否運用-g<b class='flag-5'>選項</b>的方法

    Linux】嵌入式Linux系統(tǒng)的移植(上篇:交叉編譯器、連接方式)

    的移植要點搭建交叉開發(fā)環(huán)境bootloader的選擇與移植kernel的設置、編譯、移植和調試根文件系統(tǒng)的制作嵌入式Linux系統(tǒng)的移植基本步驟確定
    發(fā)表于 11-01 16:57 ?14次下載
    【<b class='flag-5'>Linux</b>】嵌入式<b class='flag-5'>Linux</b>系統(tǒng)的移植(上篇:<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>器、連接方式)

    嵌入式Linux的內核編譯

    編譯工具鏈,在此就不再贅述。編寫Linux內核需要內核源碼和內核編譯配置文件kernel_config,如下圖:具體
    發(fā)表于 11-01 17:07 ?16次下載
    嵌入式<b class='flag-5'>Linux</b>的內核<b class='flag-5'>編譯</b>

    嵌入式Linux開發(fā)環(huán)境搭建-(6)交叉編譯QT4.8.7源碼生成qmake工具

    ,我們需要自己手動編譯QT源碼,生成qmake。編譯前準備:確保交叉編譯器版本是arm-linux
    發(fā)表于 11-02 13:21 ?3次下載
    嵌入式<b class='flag-5'>Linux</b>開發(fā)環(huán)境搭建-(6)<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>QT4.8.7<b class='flag-5'>源碼</b>生成qmake工具

    STM32MP157 Linux系統(tǒng)移植開發(fā)篇8:Linux內核配置方法及編譯

    Linux內核配置及編譯解壓內核建立源碼目錄該目錄下以patch結尾的文件為ST官方提供的補丁文件,li
    發(fā)表于 12-04 21:06 ?9次下載
    STM32MP157 <b class='flag-5'>Linux</b>系統(tǒng)移植開發(fā)篇8:<b class='flag-5'>Linux</b>內核配置方法及<b class='flag-5'>編譯</b>

    Linux應用開發(fā)-串口下載命令rzsz交叉編譯

    rz/sz工具是通過Zmodem協(xié)議傳輸文件的命令,常用于Linux與windows之前的數(shù)據(jù)傳輸。 這篇文章就介紹如何在交叉編譯rz/sz命令,并在
    的頭像 發(fā)表于 08-14 09:20 ?2178次閱讀

    Linux內核編譯腳本

    獲得編譯命令及選項 編譯linux時,默認不會顯示編譯的命令,如果你要獲得編譯命令及其
    的頭像 發(fā)表于 09-27 11:52 ?536次閱讀