交叉編譯——

什么是交叉編譯

交叉編譯 是在一個平臺上生成臨海一個平臺可執行代碼.

eg.在windows上面編寫C51代碼,并編譯生成可執行代碼。如xx.hex

我們在Ubuntu上編寫樹莓派的代碼,并編譯成可執行代碼。a.out.

是在樹莓派上運行,不在Ubuntu Linux上面運行。

編譯:在一個平臺上生成該平臺上的可執行代碼

為什么交叉編譯

平臺上不允許或不能夠安裝我們所需要的編譯器,如C51

1、平臺資源匱乏,無法運行所需要的編譯器

2、樹莓派也需要交叉編譯,、樹莓派有時又是因為目的平臺還沒有建立,連操作系統都沒有,根本談不上運行什么編譯器。操作系統也是代碼,也要編譯!

平臺運行需要至少兩樣東西:boot loader 以及操作系統核心

宿主機(host)編輯和編譯程序的平臺,一般是基于X86的pc機,也被稱為主機

目標機(target)用戶開發的系統,通常是非x86平臺。host編輯得到可執行的代碼在target上運行

交叉編譯工具鏈配置

關于編譯

編譯是指將源代碼文件(如C/C++文件)經過預處理編譯匯編鏈接等步驟,轉換為可執行文件的過 程。將源代碼轉換成機器代碼的過程稱為編譯(Compile),編譯的工作需要編譯器(Complier)來完成

本地編譯

本地編譯是指在當前的編譯平臺上,生成能在當前平臺上運行的可執行文件

交叉編譯

交叉編譯是指在當前的編譯平臺上,生成能在體系結構不同的另一種目標平臺上運行的可執行文件。

環境配置

想要在x86平臺上進行交叉編譯,并在ARM平臺上運行這個程序。首先需要在家目錄下的.bashrc最后配 置添加交叉編譯工具鏈:

export PATH=$PATH://home/pg/Desktop/orange-build/orangepi-build/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin

在x86平臺可以編譯出arm平臺的?

aarch64-none-linux-gnu-gcc -o hello1 hello.c 

用file查看文件編譯出來的程序是ARM aarch64的二進制程序

pg@pg:~/Desktop$ file hello1
hello1: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, with debug_info, not stripped

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

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

相關文章

便攜式iv測試儀特點

TH-PV30便攜式IV測試儀是一種用于測量半導體器件電學特性的設備,它具有體積小、重量輕、便于攜帶等特點,廣泛應用于半導體行業、科研實驗室以及教育領域。 該測試儀的工作原理基于四探針法,通過在半導體器件表面放置四個金屬探針&#xff0c…

【vs2022】安裝copilot和reshaper

直接安裝新版vs 17.10 自帶集成的copilot支持安裝resharper 可以跳過市場里的reshper安裝好后依然可以直接使用vs。 resharper 2024.1.2 市場里還是i老版本: copilot 不兼容,這個是之前市場安裝的版本 官方建議用vs intall 安裝 安裝 GitHub Copilot GitHub.Co…

詳解http協議

什么是HTTP協議 定義 Http協議即超文本傳送協議 (HTTP-Hypertext transfer protocol) 。 它定義了瀏覽器(即萬維網客戶進程)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給瀏覽器。從層次的角度看,HTTP是面向&am…

第四十一天 | 62.不同路徑 63.不同路徑|| 343.整數拆分 96.不同的二叉搜索樹

題目:62.不同路徑 1.二維dp數組dp[i][j]含義:到達(i,j)位置有dp[i][j]種方法。 2.動態轉移方程:dp[i][j] dp[i - 1][j] dp[i][j - 1] 3.初始化:dp[0][j] 1, dp[i][0] 1 (第一…

Vue3設置緩存:storage.ts

在vue文件使用: import { Local,Session } from //utils/storage; // Local if (!Local.get(字段名)) Local.set(字段名, 字段的值);// Session Session.getToken()storage.ts文件: import Cookies from js-cookie;/*** window.localStorage 瀏覽器永…

uniapp 安卓 Pc端真機瀏覽器調試

下載插件:真機模擬瀏覽器 1. 安裝, 每次啟用時使用usb 線連接電腦, 并且打開手機或者POS (調試設備)開發者模式, 比如我的是pos 機 則在系統設置中找到版本號,點擊多次就會觸發開發者模式 2.打開真機模擬軟件,打開后會打開一個瀏覽器,如果想要模擬google的瀏覽器則 在瀏覽器地…

精準鍵位提示,鍵盤盲打輕松入門

在說明精準鍵位提示之前,我們先來看一張圖: 這是一張標準的基準鍵位圖,也就是打字時我們雙手的8個手指放在基準鍵位上,在打不同的字母時,我們的手指以基準鍵位為中心,或上、或下、或左、或右,在…

202109青少年軟件編程(Python)等級考試試卷(四級)

第 1 題 【單選題】 執行如下 Python 代碼后, 結果是?( ) def inverse(s,n=0): while s:n = n * 10 + s % 10s = s // 10return nprint

《拯救大學生課設不掛科第二期之Windows11下安裝VC6.0(VC++6.0)與跑通Hello,World!程序教程》【官方筆記】

背景與目標人群: 大學第一次學C語言的時候,大部分老師會選擇VC6這個編輯器。 但由于很多人是新手,第一次上大學學C語言。 老師要求VC6.0(VC6.0)寫C語言跑程序可能很多人還是第一次接觸電腦。 需要安裝VC6這個編輯器…

Docker常用軟件安裝

文章目錄 1.安裝Tomcat1.docker hub查找鏡像并復制拉取鏡像命令2.拉取鏡像到本地1.執行官網命令2.查看是否拉取成功 3.啟動tomcat4.退出和重啟1.由于是以交互方式啟動的,所以不方便,直接ctrl c退出2.查看當前的容器3.使用docker start 命令啟動容器&…

【cocos creator 】生成六邊形地圖

想要生成一個六邊形組成的地圖 完整代碼示例 以下是完整的代碼示例,包含了注釋來解釋每一步: cc.Class({extends: cc.Component,properties: {hexPrefab: {default: null,type: cc.Prefab},mapWidth: 10, // 網格的寬度(六邊形的數量&am…

前端React老項目打包caniuse-lite報錯解決思路

1、下載項目,先更新.npmrc文件: registryhttp://registry.npmmirror.com 2、安裝依賴,本地啟動,運行正常,但直接提交代碼線上打包時會報錯: “ 未找到相關的合并請求。” 打開日志頁面,報錯信息…

【Flutter】線性布局彈性布局層疊布局

🔥 本文由 程序喵正在路上 原創,CSDN首發! 💖 系列專欄:Flutter學習 🌠 首發時間:2024年5月25日 🦋 歡迎關注🖱點贊👍收藏🌟留言🐾 目…

4、PHP的xml注入漏洞(xxe)

青少年ctf&#xff1a;PHP的XXE 1、打開網頁是一個PHP版本頁面 2、CTRLf搜索xml&#xff0c;發現2.8.0版本&#xff0c;含有xml漏洞 3、bp抓包 4、使用代碼出發bug GET /simplexml_load_string.php HTTP/1.1 補充&#xff1a; <?xml version"1.0" encoding&quo…

內網穿透--Nps-自定義-上線

免責聲明:本文僅做技術交流與學習... 目錄 Nps項目: 一圖通解: 1-下載nps/npc 2-服務端啟動 訪問web網頁: 添加客戶端&#xff0c;生成密匙. 3-kali客戶端連接服務端 4-添加協議隧道. 5-kali生成后門&#xff1a; 6-kali創建監聽: Nps項目: https://github.com/ehang…

藍橋杯Web開發【模擬題一】15屆

1.動態的Tab欄 日常在使用移動端 APP 或訪問 PC 端網站的時候&#xff0c;常常發現在一些有工具欄或者 Tab 欄的頁面會有頂欄固定的效果。簡單來說&#xff0c;在頁面未開始滾動時頂欄處在其原有的位置上&#xff0c;當頁面向下滾動一定區域后&#xff0c;頂欄會跟隨滾動固定在…

HTTPS證書——網站如何實現HTTPS訪問?

實現網站HTTPS訪問可以簡化為以下四個基本步驟&#xff0c;確保過程既通俗易懂又條理清晰&#xff1a; 1. 申請SSL證書 - 目的&#xff1a;SSL證書是實現HTTPS加密的關鍵&#xff0c;它驗證了網站的身份&#xff0c;并提供了加密數據所需的密鑰。 - 操作&#xff1a;首先&…

超鏈接的魅力:HTML中的 `<a>` 標簽全方位探索!

&#x1f310;超鏈接的魅力&#xff1a;HTML中的 標簽全方位探索&#xff01; &#x1f3de;?基礎營地&#xff1a;認識 <a> 標簽&#x1f6e0;?基本語法&#x1f4da;屬性擴展 &#x1f680;實戰演練&#xff1a;超鏈接的多樣玩法&#x1f308;內鏈與外鏈&#x1f4c…

TypeScript(持續更新中...)

1.TypeScript是什么&#xff1f; TypeScript是javaScript的超集。 2.使用TypeScript 1&#xff09;全局安裝nodejs 2&#xff09;安裝TypeScript編譯器 npm i -g typescript 3.編譯ts文件 //注意&#xff1a;需要在ts文件同級目錄執行此命令&#xff0c;否則會報找不到…

遙感、GIS和GPS技術在水文、氣象、災害、生態、環境及衛生等領域中的應用

【科研必備】遙感、GIS和GPS技術在水文、氣象、災害、生態、環境及衛生等領域中的應用 (qq.com)https://mp.weixin.qq.com/s?__bizMzg2NDYxNjMyNA&mid2247565057&idx4&snecec1f5396132122acf02b188f7b74ac&chksmce6515eaf9129cfc9a6c4a16413c0d746003cc192132…