当前位置: 首页 > news >正文

Linux基础第四天

系统之间文件共享

想要实现两个不同的系统之间实现文件共享,最简单的一种方案就是设置VMware软件的共享文件夹,利用共享文件夹可以实现linux系统和windows系统之间的文件共享,这样就可以实现在windows系统上编辑程序,然后在linux系统下编译程序以及运行程序,尤其是当使用开发板的时候,这种方案非常好用。

点击VMware菜单栏的“虚拟机”,然后点击“设置”,点击“选项”,点击“共享文件夹”

 

设置主机路径(windows系统的路径,),设置名称(linux系统的文件夹的名称,英文)

 

然后打开Terminal终端,输入命令cd  /mnt/hgfs/ 然后按下回车,输入ls命令查看

可以看到share文件夹就是设置好的共享文件夹的名称,切换到该目录即可实现共享。

交叉编译工具安装

交叉编译器就是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。由于开发板的硬件平台是ARM,但是开发板并不具备编译程序的能力,所以需要在计算机中的linux系统对程序进行编译。

但是计算机的硬件平台是X86_64,所以并不能使用gcc编译器生成在ARM平台运行的可执行程序,所以就需要在计算机的linux系统中安装交叉编译工具,这样就可以在计算机的linux系统中交叉编译源程序并生成可以在ARM平台运行的可执行文件。


链接: https://pan.baidu.com/s/1IS7UzGABw7fLxGLct5EcWg 提取码: 47ms

把交叉编译工具的压缩包拷贝到设置好的共享文件夹,并从共享文件夹拷贝到家目录!

注意不可以在共享文件夹中对该压缩包进行解压,因为共享文件夹是挂载到linux系统,不属于linux系统。

对压缩包进行解压,输入命令:xz   --decompress  arm-linux-gnueabi-5.4.0.tar.xz 如下:

 

利用超级用户的权限对归档文件进行释放,并且直接释放到家目录下,操作如下所示:

解压成功后可以看到在/home/xxx目录下就多了一个usr文件夹,此时要配置环境变量

gec@ubuntu:~$ cd   /home/gec/usr/local/arm/5.4.0/usr/bin     //gec是用户名,需要修改!

gec@ubuntu:~$ echo "export PATH=/home/gec/usr/local/arm/5.4.0/usr/bin:$PATH"  >>  ~/.bashrc

gec@ubuntu:~$ source ~/.bashrc                               //让配置文件立即生效

配置好环境变量之后,测试交叉编译工具是否正常,可以输入命令arm-linux-gcc -v查看

如果可以查看交叉编译工具的版本,则编写一个源文件,利用交叉编译工具进行编译:

注意如果利用交叉编译命令arm-linux-gcc对源文件进行编译时遇到以下错误情况,如下图

/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory

原因是加载共享库时出错:libmpfr.so.4:无法打开共享对象文件:没有这样的文件或目录

执行以下代码即可:

sudo  ln  -s  /usr/lib/x86_64-linux-gnu/libmpfr.so.6  /usr/lib/x86_64-linux-gnu/libmpfr.so.4

可以看到,使用不同的编译器可以对同一个源文件进行编译,只不过生成的可执行文件的执行平台不同,可执行文件hello_arm只能在ARM平台运行(开发板),可执行文件hello_x86只能在X86平台运行(计算机)。

 

http://www.dtcms.com/a/199305.html

相关文章:

  • fastadmin 数据导出,设置excel行高和限制图片大小
  • 在Excel中使用函数公式时,常见错误对应不同的典型问题
  • Python学习笔记--使用Django操作mysql
  • 一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!
  • AWS EKS IP 耗尽:原因、解决方案和最佳实践
  • 【AWS入门】AWS身份验证和访问管理(IAM)
  • 【Windows系统】向量数据库Milvus安装教程
  • Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana
  • 鸿蒙PC操作系统:从Linux到自研微内核的蜕变
  • 手机内存不够,哪些文件可以删?
  • 小红书的视频怎么保存没有水印(方法分享)
  • linux——mysql故障排查与生产环境优化
  • Python打卡DAY30
  • MySQL函数触发:函数处理与触发器自动化应用
  • Node 服务监控及通过钉钉推送告警提醒
  • 实战教程:影刀RPA采集闲鱼商品并分享钉钉
  • Linux内核深入学习(4)——内核常见的数据结构2——红黑树
  • 深入解析Spring Boot与Kafka集成:构建高效消息驱动微服务
  • 常见排序算法整理(Java实现)
  • 开发 前端搭建npm v11.4.0 is known not to run on Node.js v14.18.1.
  • 星际争霸小程序:用Java实现策略模式的星际大战
  • 使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务
  • NLP学习路线图(一): 线性代数(矩阵运算、特征值分解等)
  • OpenCV CUDA 模块中的矩阵算术运算-----在频域(复数频谱)中执行逐元素乘法并缩放的函数mulAndScaleSpectrums()
  • 51单片机点亮一个LED介绍
  • 在CMake中利用vcpkg配置C/C++环境
  • visual studio code中的插件都是怎么开发的?用的什么编程语言?
  • 谷歌 NotebookLM 即将推出 Sparks 视频概览:Gemini 与 Deep Research 加持,可生成 1 - 3 分钟 AI 视频
  • 从零开始学习three.js(21):一文详解three.js中的矩阵Matrix和向量Vector
  • MyBatis:动态SQL