国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64

這篇具有很好參考價值的文章主要介紹了交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.交叉編譯是什么,為什么要交叉編譯

  • 編譯:在一個平臺上生成在該平臺上的可執(zhí)行代碼
  • 交叉編譯:在一個平臺上生成在另一個平臺上的可執(zhí)行代碼
  • 交叉編譯的例子:如51單片機的可執(zhí)行代碼(hex文件)是在集成環(huán)境keil上面編譯完成的,我們只需要將編譯好的可執(zhí)行代碼下載到51單片機上即可運行
  • 要使用交叉編譯的原因:
    (1)目的的平臺上的資源貧乏,無法運行或安裝我們所需的編譯器
    (2)有時因為目的平臺還沒有建立,連操作系統(tǒng)都沒有,根本談不上運行什么編譯器
    (3)平臺的運行至少需要的兩樣?xùn)|西:bootloader(啟動引導(dǎo)代碼)和操作系統(tǒng)核心,這兩樣?xùn)|西也是代碼,同樣需要進行編譯為可執(zhí)行代碼才可運行,而此時原平臺根本不支持編譯,同樣需要在其他平臺上編譯好可執(zhí)行代碼

2.交叉編譯中的基礎(chǔ)知識

  • 宿主機(host) :編輯和編譯程序的平臺,一般是基于X86的PC機,通常也被稱為主機。
  • 目標(biāo)機(target):用戶開發(fā)的系統(tǒng),通常都是非X86平臺。host編譯得到的可執(zhí)行代碼在target上運行。
  • 交叉編譯需要用到的工具:交叉編譯工具鏈

3.交叉編譯工具鏈

  • arm32位:百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1tw1SYXdJ2n0olry9SSc3gg
    提取碼:xfjs
    這是要編譯為arm32位的系統(tǒng)能運行的代碼的交叉工具鏈接
  • arm64位:百度網(wǎng)盤鏈接:https://pan.baidu.com/s/14H-Xg31wVlidk_RwCLJrUg
    提取碼:xfjs
    或者到這個鏈接:aarch64下載下面這個壓縮包

gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

4.安裝交叉編譯工具鏈

  1. 將下載好的壓縮包通過ftp文件傳輸軟件傳到ubuntu中去,我用的是filezilla軟件,這個軟件免費好用,直接網(wǎng)上下載即可
  2. 解壓壓縮包

tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

得到如下文件夾
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

  1. 進入到交叉編譯工具鏈的bin目錄下

cd gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

然后查看交叉編譯的工具版本看是否安裝好

./aarch64-linux-gnu-gcc -v

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
出現(xiàn)上圖所示的版本號后,表示我們此時的交叉編譯工具是可以使用了的,但是因為沒有配置環(huán)境變量,我們此時只能在這個文件夾的bin目錄下進行使用,非常不方便,所以要配置環(huán)境變量方便使用

  1. 配置環(huán)境變量

首先使用
echo $PATH
查看自己的環(huán)境變量
將現(xiàn)有的環(huán)境變量復(fù)制下來

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

然后用
pwd
查看自己當(dāng)前所在交叉編譯工具鏈的bin目錄的完整路徑
將這個目錄也復(fù)制下來,要將這個目錄加入到環(huán)境變量中

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

最后回到回到工作目錄,打開.bashrc這個隱藏文件
vi .bashrc

在文件的后面根據(jù)自己的交叉編譯工具鏈bin目錄的位置加入環(huán)境變量,

export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/workspace/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:/home/CLC/workspace/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

接著輸入
source /home/CLC/.bashrc
加載配置文件,馬上生效配置。

這時在任意目錄下輸入

aarch64-linux-gnu-gcc -v

顯示如下圖所示,即表示交叉編譯工具鏈安裝完成了
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux

5.交叉編譯一個helloworld丟到樹莓派上運行

  1. 編寫一個test.c的文件
#include <stdio.h>

int main()
{

        printf("hello world!\n");

        return 0;
}
  1. 交叉編譯這個test.c文件

aarch64-linux-gnu-gcc test.c -o helloInArm64

交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
此時如果在x86的平臺上運行這個可執(zhí)行文件就會報錯
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
我們可以用

file helloInArm64

查看這個文件的屬性
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
這里只顯示了它是一個64位的可執(zhí)行文件,但沒有顯示平臺架構(gòu),我們將它這個可執(zhí)行文件放到樹莓派等相關(guān)的arm架構(gòu)平臺上他就會顯示平臺的架構(gòu)

  1. 在樹莓派上運行這個交叉編譯后的文件
    先使用

file helloInArm64

查看文件屬性
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
這時就會顯示平臺的架構(gòu)了

然后直接運行
交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64,Linux筆記,linux
一個交叉編譯的hellworld就運行成功了

一開始我安裝的交叉編譯工具是arm32位的,編譯出來的可執(zhí)行文件也是32位的,但我放到我64位的樹莓派上也一樣可以運行起來文章來源地址http://www.zghlxwxcb.cn/news/detail-608356.html

到了這里,關(guān)于交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SPEC CPU 2006 1.2 D2000 ARM64 aarch64平臺 docker 環(huán)境下的編譯 宿主機測試

    由于spec cpu 2006版本太老,現(xiàn)代操作系統(tǒng)gcc版本遠高于gcc4.3,且tools也沒有提供arm64架構(gòu)程序文件,導(dǎo)致安裝編譯會報大量編譯錯誤,難以適配。故采用docker方式嘗試編譯。 https://download.csdn.net/download/hknaruto/86608404 驗證可用 ---------------------------------------------------------------------

    2024年02月16日
    瀏覽(22)
  • ubuntu x86搭建 麒麟arm QT6交叉編譯

    近期項目需求開發(fā)平臺是unbuntu x86,目標(biāo)機器是UOS arm架構(gòu),由于需要在不同平臺上使用程序,需要建立基于QT6.32的交叉編譯平臺 交叉編譯器 https://blog.csdn.net/zhang421412170/article/details/110952705 下載 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz(因為我這里用的是linux平臺進行編譯,需要

    2024年02月13日
    瀏覽(25)
  • 解決 “Function not implemented“, 為 arm64 架構(gòu)宿主機重新構(gòu)建 Nacos 鏡像

    官方的 Nacos 鏡像在 arm64 架構(gòu)的系統(tǒng)上運行容器會出現(xiàn) “Function not implemented” 的相關(guān)異常日志以致于容器內(nèi) Nacos 無法正常啟動. 原因是官方鏡像基于的 CentOS 7.x 的基礎(chǔ)鏡像版本并不支持 arm64 架構(gòu)的系統(tǒng). 其實 7.x 版本是有 arm64 支持的, 只是官方鏡像并沒有采用那個 platform (

    2024年02月08日
    瀏覽(22)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    苦辣酸甜時光八載,春夏秋冬志此一生 Qt簡介: Qt(官方發(fā)音 [kju:t],音同 cute)是一個跨平臺的 C++ 開發(fā)庫,主要用來開發(fā)圖形用戶界面(Graphical User Interface,GUI)程序,當(dāng)然也可以開發(fā)不帶界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系統(tǒng)有很多,例如通用

    2024年01月23日
    瀏覽(48)
  • 宿主機(Windos)上文件上傳至Ubuntu (linux)

    宿主機(Windos)上文件上傳至Ubuntu (linux)

    因為我想在ubuntu20.04 上安裝Sublime Text ,然而我不想在ubuntu 上下載安裝因為太簡單了。 我想在windos 上下載好linux 版本,然后發(fā)送到ubuntu上(和ubuntu上下載安裝多了一個上傳的過程),我決定挑戰(zhàn)一下 第一步進入VM 后打開你的Ubuntu (linux )環(huán)境,通過桌面右擊進入終端 退到文

    2024年02月04日
    瀏覽(21)
  • wsl1 ubuntu通過宿主機代理連接外網(wǎng)

    背景:公司電腦是局域網(wǎng),通過走代理來連接外網(wǎng) wsl1 ubuntu想要通過來連接宿主機的局域網(wǎng)代理,訪問外網(wǎng) 可以先在ubuntu上測試下走代理的網(wǎng)絡(luò),注意不能用ping(ping不走代理),可用curl測試 配置在 /etc/profile.d 目錄下,新建個.sh文件( vim /etc/profile.d/http_proxy.sh ) 然后,

    2024年02月13日
    瀏覽(29)
  • VMWare ubuntu共享宿主機window11文件夾

    VMWare ubuntu共享宿主機window11文件夾

    找到需要共享的文件夾,比如我需要share文件夾共享到虛擬機中 點擊“ 共享 ”文件夾屬性,如果找不到“共享”選項卡,需要在下面的“ 選項 ”中 注意勾選“ 使用共享向?qū)Вㄍ扑]) ”,如果 已經(jīng)勾選,則先取消勾選,然后關(guān)閉頁面后重新去勾選,以便共享選項卡會出現(xiàn)

    2024年02月19日
    瀏覽(31)
  • Ubuntu20.04_x86交叉編譯aarch64版本的tslib1.22步驟

    Ubuntu20.04_x86交叉編譯aarch64版本的tslib1.22步驟

    編譯環(huán)境:小米筆記本+Windows10+VMware17?+Ubuntu20.04虛擬機 編譯目標(biāo):需要生成aarch64環(huán)境下對應(yīng)的觸摸屏驅(qū)動。 編譯步驟: 1、下載aarch64-linux-gnu編譯器,下載地址為:https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.x

    2024年02月16日
    瀏覽(24)
  • ros2交叉編譯 x86到arm

    ros2交叉編譯 x86到arm

    內(nèi)容概括: 本篇文章記錄了ros2 交叉編譯(從x86_ubuntu到arm_ubuntu)過程,以及問題解決。 ros2官方文檔 中給出了 三種交叉編譯 編譯的實現(xiàn)方法: ①提前在本地下載ros2源碼然后創(chuàng)建docker ②直接自動下載ros2源碼然后創(chuàng)建docker③不用ros2源碼,在docker中安裝預(yù)編譯ros 因為交叉編譯

    2024年04月17日
    瀏覽(26)
  • 【交叉編譯】編譯生成 x86、arm 環(huán)境下的FFTW庫

    【交叉編譯】編譯生成 x86、arm 環(huán)境下的FFTW庫

    FFTW是一個快速計算離散傅里葉變換的標(biāo)準(zhǔn)C語言程序集,可計算一維或多維實和復(fù)數(shù)據(jù)以及任意規(guī)模的DFT。下面主要介紹的是 x86 環(huán)境下?FFTW庫的編譯過程,arm環(huán)境下的編譯過程和FFTW類似,不同之處在于需要手動指定 編譯環(huán)境 和 編譯器 。 FFTW有三個版本的數(shù)據(jù)類型:double、

    2024年02月06日
    瀏覽(78)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包