交叉编译的概念及交叉编译工具的安装

news2024/11/25 20:18:56

目录

一.什么是交叉编译

二.为什么要交叉编译?

三.交叉编译链的安装

四.相关使用方法

五.软连接


一.什么是交叉编译

交叉编译是指将一种编程语言编写的程序编译成另一种编程语言的程序,通常是在不同的操作系统或硬件环境中使用的。这种编译过程会产生一个或多个二进制文件,它们可以在另一个操作系统或硬件环境中运行。简而言之就是在一个平台上生成另一个平台的可执行代码。


二.为什么要交叉编译?

1.因为目的平台上的资源贫乏,无法运行我们所需要编译器

2.树莓派是不是就不需要交叉编译?

错。也要 ,树莓派有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。操作系统也是代码,也要编译!

平台运行需要两样至少东西:bootloader(启动引导代码)以及操作系统核心

宿主机(host) :编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。

目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。


三.交叉编译链的安装

1.打开网址:https://github.com/raspberrypi/

2.选择工具

 3.点击下载

4.新建一个文件夹,从共享文件夹拷贝到工作目录

cp /mnt/hgfs/share/tools-master.zip .

把下载好的tools-master.zip放进去后解压

unzip tools-master.zip

5.进入到相应的文件下 

cd tools-master
cd arm-bcm2708/
cd gcc-linaro-arm-linux-gnueabihf-raspbian-x64
cd /bin

6.配置环境变量

echo $PATH   显示环境变量

 配置临时环境变量

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

或者也可以配置永久有效的环境变量

修改工作目录下的.bashrc 隐藏文件

vi /home/liujiaxin/.bashrc 

在文件最后一行加入: 

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/liujiaxin/lessonPi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

 加载配置文件,马上生效配置。


四.相关使用方法

1.如何使用交叉编译:

arm-linux-gnueabihf-gcc  xxx.c -o xxx

 2.用-v参数可查看GCC编译器的版本信息

 3.将虚拟机代码上传到树莓派

scp clientInPi pi@192.168.43.30:/home/

指令  文件名  开发板用户名@开发板地址:开发板的绝对路径

4.file 可执行文件名:查看文件类型


五.软连接

软链接概念:1. 软链接文件有类似于Windows的快捷方式。

                     2. 在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

                     3. 你选定的位置上生成一个文件的镜像,不会占用磁盘空间

如何生成:

ln -s libwiringPi.so.2.50 libwiringPi.so

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【手写 Vuex 源码】第十一篇 - Vuex 插件的开发

一,前言 上一篇,主要介绍了 Vuex-namespaced 命名空间的实现,主要涉及以下几个点: 命名空间的介绍和使用;命名空间的逻辑分析与代码实现;命名空间核心流程梳理; 本篇,继续介绍 Vu…

GWAS:mtag (Multi-Trait Analysis of GWAS) 分析

mtag (Multi-Trait Analysis of GWAS)作用:通过对多个表型相似的GWAS summary结果进行联合分析,发现更多的表型相关基因座。 以抑郁症状、神经质和主观幸福感这三个表型为例,分别对他们进行GWAS分析,鉴定得到32、9 和 13个基因座与…

前端食堂技术周刊第 70 期:Volar 的新开端、Lighthouse 10、良好的组件设计、React 纪录片、2022 大前端总结

美味值:🌟🌟🌟🌟🌟 口味:黑巧克力 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 Volar 的新开端Chrome 110 的新功能Lighthouse 10Nuxt v3.2.0加速 JavaSc…

【github】解决超限制文件上传失败问题

之前因为push的一堆文件中有个104MB的大文件在里面,导致push一直失败一直失败超时又报错 一开始我还以为是VPN的问题,搞了好久都没解决 后来一步一步回撤发现是因为卡在了我那个104MB的文件这里 查阅了github的官方文档 关于 GitHub 上的大文件 - Git…

【计算机网络期末复习】第五章 传输层

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址: ❤️如果有收获的话,欢迎点…

运动蓝牙耳机怎么选、最适合运动的蓝牙耳机推荐

很多人喜欢跑步时听歌来放松心情起到解压效果。但一般的无线蓝牙耳机很容易脱落丢失,甚至因为防水效果太菜导致耳机进水,很容易就损坏耳机了,加上运动出汗给耳腔带来的黏腻感与长期佩戴引发的疼痛感,这时一款好的运动设备就显得尤…

基于ISO13400 (DoIP) 实现车辆刷写

近年来,在整车研发中基于以太网实现车辆高带宽通讯无疑是人们热议的话题。无论是车内基于车载以太网减少线束成本,实现ADAS、信息娱乐系统等技术,还是基于新的电子电气架构以及远程诊断需求,实现以太网诊断(DoIP&#…

prepend和append同时使用的时候,prepend中的内容不显示

前几天做项目的时候,遇到一个需求,需要做一个类似于下面的样式: 当我看完element的时候,自信满满,这不就是prepend和append嘛,简单!!!此时的我不会想到后续经历的坎坷。 …

手语检测识别

论文:Real-Time Sign Language Detection using Human Pose Estimation Github:https://github.com/google-research/google-research/tree/master/sign_language_detection SLRTP 2020 手语识别任务包括手语检测(Sign language detection&a…

蓝桥杯C/C++VIP试题每日一练之回形取数

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

以掘金示例,利用内链/外链进行网站SEO优化

前言 内链:从自己网站的一个页面指向另外一个页面。通过内链让网站内部形成网状结构,让蜘蛛的广度和深度达到最大化。 外链:在别的网站导入自己网站的链接。通过外链提升网站权重,提高网站流量。 一般来说,内链和外链…

JVM类加载机制

回到2018年的抖音哈哈. 回顾下: java开发环境: java编译运行过程: 1) 编译期:.java源文件,经过编译,生成.class字节码文件 2) 运行期:JVM加载.class并运行.class(0和1) 特点: 跨平台、一次编程,处处报错 名词解释: 1…

线上商超博弈:老将固守,抖音掀浪

配图来自Canva可画 2023年,抖音对本地生活服务的野心愈加膨胀了。 近日,关于“抖音将于3月1日上线全国外卖服务”的消息传得沸沸扬扬。虽然抖音官方出面回应“团购配送”项目在北京、上海、成都等城市试点中,目前暂无具体时间表,…

api是什么意思?又该如何使用呢?

一、应用程序编程接口 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 API全称 "…

kkfileview从Git拉取代码编译部署到服务器

今天遇到了需求是,使用kkfileview预览的时候自带的页面嵌套后页面显示的不是很友好,然后就配合前端下载了源码,本地测试运行很完美,但是部署到服务器(centos8)上安装openOffice环境坑死了 1、从gitee拉取代…

计算机网络 - 1. 体系结构

目录概念、功能、组成、分类概念功能组成分类分层结构概念总结OSI 七层模型应用层表示层会话层传输层网络层数据链路层物理层TCP/IP 四层模型OSI 与 TCP/IP 相同点OSI 与 TCP/IP 不同点为什么 TCP/IP 去除了表示层和会话层五层参考模型概念、功能、组成、分类 概念 &#x1f…

kail工具的使用--- cewl

1.介绍 Cewl是一款采用Ruby开发的应用程序,可以给他的爬虫指定URL地址和爬取深度,还可以添加外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。 2.使用 输入以下命令之后…

Python 处理Excel内的数据

(一)案例一介绍 现在有一匹电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品,另外需要统计每个品牌下面的每个子品类…

【Flutter】DartPad 终极在线Dart编程环境

文章目录一、什么是DartPad二、如何使用三、使用技巧四、如何利用好DartPad五、总结一、什么是DartPad "Success is not final, failure is not fatal: it is the courage to continue that counts." - Winston Churchill"成功不是终点,失败不是致命…

cas 登录成功不跳转 CommonUtils.getResponseFromServer

目录报错信息问题背景问题原因现场服务器情况流程修改方法报错信息 2016-08-18 17:05:08.718 [http-bio-8080-exec-9] ERROR org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 连接超时 java.net.ConnectException: 连接超时 java.net.ConnectException: Conne…