Ubuntu中配置交叉編譯工具的三條命令的詳細研究

關于該把下面的三條交叉編譯配置語句加到哪里,詳情見
https://blog.csdn.net/wenhao_ir/article/details/144326545
的第2點。

現在試解釋下面三條交叉編譯配置語句:

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

答:這三條配置語句用于設置交叉編譯的環境變量,從而讓交叉編譯工具鏈能夠被正確找到并使用。以下是詳細解析:


配置語句解析

1. export ARCH=arm
  • 作用
    • 設置目標架構為 arm,告訴構建工具你正在為 ARM 架構的設備編譯代碼。
    • 在一些構建系統(例如 Linux 內核 Makefile 或 Buildroot)中,這個變量決定目標架構。
  • 影響
    • 這個變量通常被 Makefile 或構建工具讀取,確保編譯器生成適合 ARM 架構的代碼。

注意:export ARCH=arm 是一個在交叉編譯環境中 非常重要 的變量,但它的作用并不是直接被交叉編譯工具(例如 gcc)使用,而是被 構建系統(例如 Linux 內核的 Makefile 或一些編譯框架)用來指導交叉編譯過程。


2. export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
  • 作用
    • 指定交叉編譯工具鏈的前綴。
    • 交叉編譯工具鏈的命令(如 gcc, ld, as)通常以固定的前綴命名,比如 arm-buildroot-linux-gnueabihf-gcc
    • 設置這個變量后,Makefile 或構建工具會在需要調用編譯器時,自動將前綴加到命令前。例如:
      • $(CROSS_COMPILE)gcc 會被解析為 arm-buildroot-linux-gnueabihf-gcc

3. export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
  • 作用

    • 將交叉編譯工具鏈的 bin 目錄添加到環境變量 PATH 中。
    • 環境變量 PATH 告訴系統去哪些目錄查找可執行文件。
    • 添加工具鏈所在目錄后,終端可以直接找到并運行工具鏈的命令。
  • 影響

    • 如果 arm-buildroot-linux-gnueabihf-gcc 位于 /home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin 目錄下,現在它就可以直接被終端識別。

總結

  1. 通過 PATH 查找到工具鏈的二進制文件
  2. 通過 CROSS_COMPILE 確定工具鏈前綴,用于構建系統的調用
  3. 通過 ARCH=arm 指定目標架構,確保生成適合 ARM 平臺的代碼

如何使命令arm-buildroot-linux-gnueabihf-gcc -v生效?

通過上面三條配置,環境已經正確設置,以下是如何讓命令生效的步驟:

1. 查找路徑

當你運行:

arm-buildroot-linux-gnueabihf-gcc -v
  • 系統查找流程
    1. 系統會在 PATH 指定的目錄中逐一查找名為 arm-buildroot-linux-gnueabihf-gcc 的可執行文件。
    2. 由于 PATH 包含了 /home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin,系統會在這個目錄下找到工具鏈。
2. 執行工具
  • arm-buildroot-linux-gnueabihf-gcc 是工具鏈的交叉編譯器,運行時會根據配置為目標平臺(ARM 架構)生成二進制文件。
  • -v 參數是查看編譯器版本的常用選項,確認工具鏈是否安裝正確。

其實命令arm-buildroot-linux-gnueabihf-gcc -v是沒有用到配置語句的第1句export ARCH=arm和第3句export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin的。
第1句是Makefile時用;
如果把arm-buildroot-linux-gnueabihf-gcc -v改為 ${CROSS_COMPILE}gcc -v那么就用到了第2句。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62467.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

wlanapi.dll丟失怎么辦?有沒有什么靠譜的修復wlanapi.dll方法

在遇到各種系統文件錯誤當中,其中之一就是“wlanapi.dll文件丟失”的問題。這種問題通常發生在Windows操作系統上,特別是當系統試圖執行與無線網絡相關的任務時。wlanapi.dll是一個重要的系統文件,它負責處理Windows無線網絡服務的許多功能。…

利用ipmi工具設置ip、用戶等設置

#打開交互模式 ipmitool -I open shell #切換管理端口為lom1,即共享em1/eth0 delloem lan set shared with lom1 #設置ip、mask、gateway lan set 1 ipaddr 10.0.0.250 lan set 1 netmask 10.0.0.250 lan set 1 defgw ipaddr 10.0.0.250 #查看用戶名 user list 1 …

Python之因子分析詳細步驟

1.數學原理 1.1數學模型 1.2正交因子模型假設 注意:下面的推導都是基于這一假設。因此,這里的模型都是屬于正交因子模型。 1.3正交因子模型的協方差結構 1.4各類方差貢獻的介紹 在1.3正交因子模型的協方差結構中,我們介紹了“方差貢獻”&…

unity3d—demo(2d人物左右移動發射子彈)

目錄 人物代碼示例: 子彈代碼示例: 總結上面代碼: 注意點: 人物代碼示例: using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerTiao : MonoBehaviour {public f…

linux之vim

一、模式轉換命令 vim主要有三種模式:命令模式(Normal Mode)、輸入模式(Insert Mode)和底線命令模式(Command-Line Mode)。 從命令模式切換到輸入模式:i:在當前光標所在…

顯存和GPU之間的通信;GPUDirect P2P,NVLink,NCCL;聚合通信和點對點通信

目錄 顯存和GPU之間的分配 顯存和GPU之間的通信 原語是什么,簡單舉例說明 GPUDirect P2P,NVLink,NCCL的全稱及解釋 聚合通信和點對點通信 聚合通信(Collective Communication) 點對點通信(Point-to-Point Communication) 為什么使用GPUDirect P2P,NVLink,NCCL…

Mysql 的 B+ 樹是否包含行數據?

在 MySQL 中,是否在 B樹 的葉子節點上存儲完整的行數據,取決于使用的 存儲引擎 和 索引類型: 聚簇索引 (Clustered Index) 葉子節點包含完整的行數據。 適用場景:MySQL InnoDB 存儲引擎的主鍵索引(或聚簇索引&#xf…

【記錄】用JUnit 4的@Test注解時報錯java.lang.NullPointerException的原因與解決方法

項目場景: 在練習黑馬點評的邏輯過期解決緩存擊穿時,編寫了一個預熱緩存數據的單元測試 SpringBootTest public class HmDianPingApplicationTests {Resourceprivate ShopServiceImpl shopService;Testpublic void testSaveShop() throws InterruptedE…

echarts使用整理

4、條形分區統計 <div ref"chartsVal1" class"chartsline-div"></div> const chartsVal1 ref(null); const chartsVal1Title ref(運行時間統計);drewCharts2(chartsVal1, chartsVal1Title.value);function drewCharts2(id, title) {const m…

【八股】HTTP

瀏覽器輸入URL之后發生的過程 瀏覽器解析URL中的協議&#xff0c;主機&#xff0c;端口&#xff0c;路徑參數等DNS域名解析得到對應的IP地址通過IP和PORT對服務器發送TCP三次握手建立連接瀏覽器發送請求服務器接受請求&#xff0c;處理并響應瀏覽器得到HTTP響應&#xff0c;對…

torch.optim.lr_scheduler.ReduceLROnPlateau

torch.optim.lr_scheduler.ReduceLROnPlateau 是 PyTorch 中的一種學習率調度器&#xff0c;主要用于在模型訓練過程中根據某些指標&#xff08;如驗證損失&#xff09;動態調整學習率。它是一種基于性能指標動態調整學習率的策略&#xff0c;而不是預定義的固定時間調整。 主要…

ubuntu下的chattts 學習6:音色固定的學習

魔搭社區 該區提供了隨機種子級音樂的試聽與下載。 spk torch.load(<PT-FILE-PATH>) params_infer_code {spk_emb: spk, } 略 測試過程&#xff1a; 1.先建一個文件夾&#xff1a;然后從上面的網站上下載了兩個。放在里面測試 2 2.測試代碼 import ChatTTS impo…

數據集的重要性:如何構建AIGC訓練集

文章目錄 一、為什么數據集對AIGC如此重要&#xff1f;1. 數據決定模型的知識邊界2. 數據質量直接影響生成效果3. 數據集多樣性提升模型魯棒性 二、構建AIGC訓練集的關鍵步驟1. 明確目標任務和生成需求2. 數據源的選擇3. 數據清洗與預處理4. 數據標注5. 數據增強 三、針對不同類…

47 基于單片機的書庫環境監測

目錄 一、主要功能 二、硬件資源 三、程序編程 四、實現現象 一、主要功能 基于51單片機&#xff0c;采用DHT11濕度傳感器檢測濕度&#xff0c;DS18B20溫度傳感器檢測溫度&#xff0c; 采用滑動變阻器連接數模轉換器模擬二氧化碳和氧氣濃度檢測&#xff0c;各項數值通過lc…

【操作系統】每日 3 題(五十五)

?個人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;專欄地址&#xff1a;https://blog.csdn.net/newin2020/category_12820365.html &#x1f4da;專欄簡介&#xff1a;在這個專欄中&#xff0c;我將會分享操作系統面試中常見的面試題給大家~ ??…

服務器加固

1.服務器密碼復雜度 密碼最小長度&#xff0c;密碼復雜度策略 vim /etc/pam.d/system-auth --------------- #密碼配置 #ucredit&#xff1a;大寫字母個數&#xff1b;lcredit&#xff1a;小寫字母個數&#xff1b;dcredit&#xff1a;數字個數&#xff1b;ocredit&#xff1a;…

spring boot 同一個redis 操作不同的庫

1.下面是在Spring Boot中配置多個Redis數據庫的幾種方式&#xff1a; 1.1 配置如下# application.yml spring:redis:host: localhostport: 6379password: your_password# 連接池配置lettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: -1mstimeout: 5000ms# 多個數據…

C語言面試題/筆試題/高頻面試題_2

9. 全局變量和局部變量的區別 定義&#xff1a;全局變量是定義在函數外部的變量&#xff0c;局部變量是定義在 函數內部的變量 存儲位置&#xff1a;全局變量存儲在全局區&#xff0c;局部變量存儲在棧區 作用域&#xff1a;全局變量可以在程序任意位置使用&#xff0c;局部變量…

Brain.js(八):RNNTimeStep 實戰教程 - 股票價格預測 - 實操需警慎

前置聲明&#xff0c;個人淺度炒股&#xff0c;但計劃將基金轉入股市。然后 股市有風險&#xff0c;不是技術可以完全預測的&#xff0c;但是在無頭緒的時候&#xff0c;用技術指標做個參考也不錯。 本文涉及到的股票預測&#xff0c;只是代碼簡單示例&#xff0c;實操需警慎&a…

MySQL | 尚硅谷 | 第13章_約束

MySQL筆記&#xff1a;第13章_約束 文章目錄 MySQL筆記&#xff1a;第13章_約束第13章_約束 1. 約束(constraint)概述1.1 為什么需要約束1.2 什么是約束1.3 約束的分類演示代碼 2. 非空約束2.1 作用2.2 關鍵字2.3 特點2.4 添加非空約束2.5 刪除非空約束演示代碼 3. 唯一性約束3…