Ubuntu交叉編譯器工具鏈安裝

聲明

本博客所記錄的關于正點原子i.MX6ULL開發板的學習筆記,(內容參照正點原子I.MX6U嵌入式linux驅動開發指南,可在正點原子官方獲取正點原子Linux開發板 — 正點原子資料下載中心 1.0.0 文檔,旨在如實記錄我在學校學習該開發板過程中所遭遇的各類問題以及詳細的解決辦法。其初衷純粹是為了個人知識梳理、學習總結以及日后回顧查閱方便,同時也期望能為同樣在學習這款開發板的同學或愛好者提供一些解決問題的思路和參考。我盡力保證內容的準確性和可靠性,但由于個人知識水平和實踐經驗有限,若存在錯誤或不嚴謹之處,懇請各位讀者批評指正。

責任聲明:雖然我力求提供有效的問題解決辦法,但由于開發板使用環境、硬件差異、軟件版本等多種因素的影響,我的筆記內容不一定適用于所有情況。對于因參考本筆記而導致的任何直接或間接損失,我不承擔任何法律責任。使用本筆記內容的讀者應自行承擔相關風險,并在必要時尋求專業技術支持。

1 交叉編譯器安裝

Ubuntu 自帶的 gcc 編譯器是針對 X86 架構的!要編譯的 ARM 架構的代碼,需要一個在 X86 架構的 PC 上運行,可以編譯 ARM 架構代碼的 GCC 編譯器,這個編譯器就叫做交叉編譯器,總結一下交叉編譯器就是:

1、它肯定是一個 GCC 編譯器。

2、這個 GCC 編譯器是運行在 X86 架構的 PC 上的。

3、這個 GCC 編譯器是編譯 ARM 架構代碼的,也就是編譯出來的可執行文件是在 ARM 芯片上運行的。

交叉編譯器中“交叉”的意思就是在一個架構上編譯另外一個架構的代碼,相當于兩種架構“交叉”起來了。

交叉編譯器有很多種,本文所采用的編譯器是參照正點原子官方教程的,使用 Linaro 出品的交叉編譯器

Linaro GCC 編譯器下載地址如下:

Linaro Releases

目前最新的版本是7.5.0,但是正點原子教程里面說明7.3.1 版本編譯器的時候發現編譯完成后的 uboot 無法運行。所以這里作為記錄筆記與正點原子官方教程保持一致,采用4.9版本的編譯器。感興趣的可以試試最新版本。

下載鏈接:Linaro Releases

根據自己所使用的 Ubuntu 系統類型選擇合適的版本

32位選擇:

64位選擇:

或者去正點原子官網下載i.MX6ULL Linux阿爾法開發板 — 正點原子資料下載中心 1.0.0 文檔,在5、開發工具->1、交叉編譯器中可以找到(推薦)

在當前用戶根目錄下創建了一個名為“linux”的文件夾,在這個 linux 文件夾里面再創建一個名為“tool”的文件夾,用來存放一些開發工具。使用前面已經安裝好的 FileZilla (參照Ubuntu 和 Windows 文件互傳(FTP)這篇文章)將交叉編譯器拷貝到 Ubuntu 中剛剛新建的“tool”文件夾中

在 Ubuntu 中創建目錄: /usr/local/arm,命令如下:

sudo mkdir /usr/local/arm

完成以后將剛剛拷貝的交叉編譯器復制到/usr/local/arm 這個目錄中,在終端使用命令“ cd” 進入 到 存放 有交叉編譯器的目錄, 比如 我 前面 將交 叉 編譯 器拷 貝 到了 目錄“/home/zuozhongkai/linux/tool”中,然后使用如下命令將交叉編譯器復制到/usr/local/arm 中:

拷貝完成以后在/usr/local/arm 目錄中對交叉編譯工具進行解壓,解壓命令如下:

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

解壓完成以后會生成一個名為“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夾,這個文件夾里面就是我們的交叉編譯工具鏈。

修改環境變量,使用 VI 打開/etc/profile 文件,命令如下:

sudo vi /etc/profile

打開/etc/profile 以后,在最后面輸入如下所示內容:

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

修改好以后就保存退出,重啟 Ubuntu 系統,交叉編譯工具鏈(編譯器)就安裝成功了。

2. 安裝相關庫

在使用交叉編譯器之前還需要安裝一下其它的庫,命令如下:

sudo apt-get install lsb-core lib32stdc++6

若Ubuntu 版本過高可能會出現報錯,如下所示:

因為在較新的 Ubuntu 系統(如 20.04、22.04、24.04)中,lsb-core被拆分成更小的包,通常改用?lsb-release?或其他相關包。

解決方法:

1:直接安裝lsb-release(推薦)

sudo apt updatesudo apt install lsb-release lib32stdc++6

2:啟用 Universe 倉庫后重試

sudo add-apt-repository universesudo apt updatesudo apt install lsb-core lib32stdc++6

3:安裝完整的 LSB 組件(適用于舊版系統)

如果系統較舊(如 Ubuntu 18.04 或更早),可以嘗試:

sudo apt install lsb-core lsb-release lib32stdc++6?

3. 交叉編譯器驗證

查看一下交叉編譯工具的版本號,輸入如下命令:

arm-linux-gnueabihf-gcc -v

如果交叉編譯器安裝正確的話就會顯示版本號

可以看出當前交叉編譯器的版本號為 4.9.4,說明交叉編譯工具鏈安裝成功。

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

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

相關文章

Tomcat 部署 Jenkins.war 詳細教程(含常見問題解決)

在Tomcat中部署Jenkins.war文件是一個相對簡單的過程,以下是詳細步驟: 1. 準備工作 確保已安裝JDK:Jenkins需要Java環境,建議安裝JDK 8或更高版本。 下載Jenkins.war:https://pan.quark.cn/s/c4fd7711a1b3 下載Tomc…

DAY46 動態規劃Ⅸ 股票問題Ⅱ

188. 買賣股票的最佳時機 IV - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxProfit(int k, vector<int>& prices) {if(prices.size()0) return 0;vector<vector<int>>dp(prices.size(),vector<int>(2*k1,0));for(int i…

4月2日工作日志

一個樸實無華的目錄 今日學習內容&#xff1a;1.UIAbility生命周期2.默認啟動頁面設置3.同模塊喚起ability 今日實操內容&#xff1a; 今日學習內容&#xff1a; 1.UIAbility生命周期 2.默認啟動頁面設置 3.同模塊喚起ability 今日實操內容&#xff1a; 通過分組件文件&#…

鴻蒙學習筆記(4)-Radio組件、彈框組件、組件內部狀態、工具類

一、Radio組件 &#xff08;1&#xff09;簡述 創建單選框組件。接收一個RadioOptions類型對象參數。 名稱類型必填說明valuestring是 當前單選框的值。 groupstring是 當前單選框的所屬群組名稱&#xff0c;相同group的Radio只能有一個被選中。 indicatorType12RadioIndica…

111.在 Vue 3 中使用 OpenLayers 實現動態曲線流動圖(類似 ECharts 遷徙狀態)

在數據可視化領域&#xff0c;ECharts 提供的 遷徙圖&#xff08;流動圖&#xff09; 是一種直觀展示數據流動的方式&#xff0c;如人口遷徙、物流流向等。我們可以使用 OpenLayers 結合 Vue 3 來實現類似的 動態曲線流動圖&#xff0c;從而在 Web GIS 項目中提供更生動的可視化…

全棧開發項目實戰——AI智能聊天機器人

文章目錄 一&#xff1a;項目技術棧和代碼分析1.前端技術棧&#xff08;1&#xff09;HTML&#xff08;index.html&#xff09;&#xff1a;&#xff08;2&#xff09;CSS&#xff08;styles.css&#xff09;&#xff1a;&#xff08;3&#xff09;JavaScript&#xff08;scrip…

無人機機體結構設計要點與難點!

一、無人機機體結構設計要點 1. 類型與應用場景匹配 固定翼無人機&#xff1a;需優化機翼升阻比&#xff0c;采用流線型機身降低氣動阻力&#xff08;如大展弦比機翼設計&#xff09;。 多旋翼無人機&#xff1a;注重輕量化框架和對稱布局&#xff08;如四軸/六軸碳纖維機…

eBest AI智能報表:用自然語言對話解鎖企業數據生產力

告別傳統數據迷宮&#xff0c;讓業務洞察"開口即得" 【數據價值被困在系統迷宮中】? 在數字化轉型的深水區&#xff0c;80%的企業正被數據孤島和越來越多&#xff0c;也越來越復雜的系統所困擾。 ? 操作黑洞&#xff1a;用戶平均通過6次篩選和層級跳轉才能觸達目標…

Linux 編程環境

文章目錄 VimGCCGDBMake Vim Vim GCC GCC&#xff08;GNU Compiler Collection&#xff09;是一款編譯語言編譯器&#xff0c;此項目最早由GNU計劃的發起者理查德 斯托曼開始實施。第一版GCC于1987年發行&#xff0c;最初的GCC代表GNU C Compiler&#xff0c;即GNU的C語言編…

JSONP跨域訪問漏洞

一、漏洞一:利用回調GetCookie <?php$conn new mysqli(127.0.0.1,root,root,learn) or die("數據庫連接不成功"); $conn->set_charset(utf8); $sql "select articleid,author,viewcount,creattime from learn3 where articleid < 5"; $result…

JuiceFS vs HDFS,最簡單的 JuiceFS 入門

你好,我是 shengjk1,多年大廠經驗,努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注!你會有如下收益: 了解大廠經驗擁有和大廠相匹配的技術等希望看什么,評論或者私信告訴我! 文章目錄 一、背景二、JuiceFS 入門2.1 核心特性2.2 JuiceFS 架構2.3 JuiceFS 如何存儲文…

音頻進階學習二十四——IIR濾波器設計方法

文章目錄 前言一、濾波器設計要求1.選頻濾波器種類2.通帶、阻帶、過度帶3.濾波器設計指標 二、IIR濾波器的設計過程1.設計方法2.常見的模擬濾波器設計1&#xff09;巴特沃斯濾波器&#xff08;Butterworth Filter&#xff09;2&#xff09;切比雪夫濾波器&#xff08;Chebyshev…

vue3源碼分析 -- runtime

runtime運行時&#xff0c;主要在packages/runtime-core目錄下&#xff0c;核心提供了h、render等函數。在理解它們之前&#xff0c;我們需要了解下HTML DOM 樹和虛擬 DOM等概念 HTML DOM 樹 通過節點構成的一個樹形結構&#xff0c;我們稱為HTML DOM節點樹。DOM 文檔里面做了…

清明假期在即

2025年4月2日&#xff0c;6~22℃&#xff0c;一般 遇見的事&#xff1a;這么都是清明出去玩&#xff1f;你們不掃墓的么。 感受到的情緒&#xff1a;當精力不放在一個人身上&#xff0c;你就會看到很多人&#xff0c;其實可以去接觸的。 反思&#xff1a;抖音上那么多不幸和幸…

tomcat 目錄結構組成

文章目錄 背景文件結構層級一些常用的路徑 背景 現在非常多的 java web 服務部署在 linux 服務器中&#xff0c;我們服務器中的 tomcat 會有各種文件路徑&#xff0c;看下它有哪些文件 文件結構層級 ├── bin/ # 核心腳本和啟動文件 ├── conf/ # …

多層內網滲透測試虛擬仿真實驗環境(Tomcat、ladon64、frp、Weblogic、權限維持、SSH Server Wrapper后門)

在線環境:https://www.yijinglab.com/ 拓撲圖 信息收集 IP地址掃描 確定目標IP為10.1.1.121 全端口掃描 訪問靶機8080端口,發現目標是一個Tomcat服務,版本

NOIP2010提高組.引水入城

*前置題目 901. 滑雪 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 310, INF 0x3f3f3f3f; const int dx[4] {0, -1, 0, 1}, dy[4] {1, 0, -1, 0};int n, m, h[N][N]; int f[N][N]; int ans;int dfs(i…

Share02-小小腳本大大能量

各位看官你們好&#xff0c;又是一篇共享知識點的文章&#xff0c;今天我們來聊一聊腳本在我們上位組態中的作用。各個廠家的上位軟件或者觸屏軟件都內嵌了腳本功能&#xff0c;有的是二次開發的固定指令格式&#xff0c;有的可以接收廣域的標準語言指令。它帶給我們更多的方便…

LangChain接入azureopenai步驟(2025年初)

背景&#xff1a; 為了快速且規范的實現ai應用&#xff0c;可使用LangChain框架&#xff0c;便于后期維護。雖然deepseek異軍突起&#xff0c;在終端用戶占有率很高&#xff0c;但是仔細查閱相關api接口&#xff0c;尤其是自有知識庫需要使用的文本向量化模型方面&#xff0c;o…

阿里云國際站代理商:模型訓練中斷數據丟失怎么辦?

定期保存訓練狀態&#xff1a;在訓練過程中&#xff0c;設定自動保存訓練狀態的頻率&#xff0c;將模型的參數、優化器狀態、訓練數據的中間結果等定期保存到存儲介質上。這樣&#xff0c;當中斷發生時&#xff0c;可以恢復到上次保存的狀態&#xff0c;避免訓練進度的損失。 …