交叉编译是什么?如何配置?软连接?硬连接?

一、交叉编译是什么,为什么要交叉编译
1、什么是交叉编译
交叉编译
        交叉编译可以理解为:在当前编译平台上生成另一个目标平台上的可执行代码,但是编译平台本身却不能运行该程序。

        比如,我们在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。

本地编译
        是指编译源代码的平台和执行源代码编译后程序的平台是同一个平台。

2、为什么要交叉编译?
        1. 交叉编译的目标系统一般都是内存较小、显示设备简陋甚至没有,没有能力在其上进行本地编译,无法运行我们所需要编译器;

        2. 有能力进行源代码编译的平台CPU架构或操作系统与目标平台不同;

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

        要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。如:在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。

二、交叉编译工具链的安装

树莓派交叉编译工具链安装

Raspberry Pi · GitHub

1.将下载好的压缩包直接拖入Ubuntu新建会话的新建文件夹中

或者用共享文件夹传输:虚拟机->设置->选项->共享文件夹->添加路径 

cp /mnt/hgfs/share/tools-master.zip . 从共享文件夹复制压缩包

2.进入文件夹,解压工具压缩包 :unzip tools-master.zip

3.永久配置环境变量:

3.1首先进入解压后的文件夹:

 3.2再进入到arm-bcm2708目录中去:cd arm-bcm2708/

3.3再进入到 gcc-linaro-arm-linux-gnueabihf-raspbian-x64 目录中去:

 3.4进入bin路径

3.5 pwd获取当前文件夹路径

3.6 echo $PATH 获取当前环境变量的值

 3.7 在工作目录下的 .bashrc 文件中添加上面红色的和pwd获取的路径:

export PATH=/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

把编译生成的可执行文件下载到开发板: 

  1. scp clientInPi pi@192.168.43.179:/home/pi

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

软连接:

1.类似于windows下的快捷方式

2.在符号链接中,文件实际上是一个文本文件,其中包含另一个文件的地址信息

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

如何配置软连接?

ln      -s     libwiringPi.so.2.50 libwiringPi.so

指令 参数     被链接文件名         链接文件名

如果出现:ln: failed to create symbolic link `libwiringPi.so': File exists 翻译过来的意思就是创建连接符号失败,文件存在

解决办法是:

ln      -sf     libwiringPi.so.2.50 libwiringPi.so    (-sf的意思是强制执行,如果不存在文件就创建,存在的话就覆盖)

硬连接:

会在你选定的位置生成一个与源文件相同大小的文件,无论软硬连接都会与文件保持相同变化

ln libwiringPi.so.2.50 libwiringPi.so

硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件 

软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。

软链接主要应用于以下两个方面:一是方便管理,例如可以把一个复杂路径下的文件链接到一个简单路径下方便用户访问;另一方面就是解决文件系统磁盘空间不足的情况。例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文件系统中的目录链接到该文件系统中,这样就可以很好的解决空间不足问题。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值