RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux交叉編譯選項(xiàng)與源碼與目標(biāo)文件分離

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

交叉編譯選項(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中的ARCHCROSS_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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(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
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

    Linux QT5程序編譯準(zhǔn)備源碼

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

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

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

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

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

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

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

    定制ARM For Linux交叉編譯工具詳細(xì)介紹

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

    判斷Linux文件編譯時(shí)是否運(yùn)用-g選項(xiàng)的方法

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

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

    的移植要點(diǎn)搭建交叉開發(fā)環(huán)境bootloader的選擇與移植kernel的設(shè)置、編譯、移植和調(diào)試根文件系統(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的內(nèi)核編譯

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

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

    ,我們需要自己手動(dòng)編譯QT源碼,生成qmake。編譯前準(zhǔn)備:確保交叉編譯器版本是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內(nèi)核配置方法及編譯

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

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

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

    Linux內(nèi)核編譯腳本

    獲得編譯命令及選項(xiàng) 編譯linux時(shí),默認(rèn)不會(huì)顯示編譯的命令,如果你要獲得編譯命令及其
    的頭像 發(fā)表于 09-27 11:52 ?637次閱讀
    RM新时代网站-首页