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

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.xdnf.cn/news/7451.html

相关文章:

  • goldenDB创建函数索引报错问题
  • 鸿蒙 Background Tasks Kit(后台任务开发服务)
  • 北京本地 SEO 推广:从技术成本到效果转化的深度拆解
  • 从零训练一个大模型:DeepSeek 的技术路线与实践
  • 苏州SMT贴片加工服务选择指南
  • MCP详解
  • Python中的整型(int)和浮点数(float)
  • 哈希表和哈希函数
  • 养生攻略:打造活力健康日常
  • 《 二级指针:解锁指针的进阶魔法》
  • GPT/Claude3国内免费镜像站更新 亲测可用
  • 活学妙用——5W2H分析法
  • 【java第17集】java流程控制语句详解
  • 按键太频繁导致,报不应该报的错误!
  • 秒删node_modules 极速删除 (rimraf工具)
  • Linux grep 命令详解:常用选项、参数及实战场景
  • 基于SpringBoot的家政预约系统
  • 以下是 MySQL 中常用到的 英语单词和词组 的全面分类整理,涵盖数据库操作、SQL语句、函数、配置等核心内容
  • 监控易:一体化集成平台,打破运维壁垒
  • 通过子接口(Sub-Interface)实现三层接口与二层 VLAN 接口的通信
  • bat 批处理获取日期、时间
  • vue3自适应高度超出折叠功能
  • 【DNS寻址之旅】从敲下网址到网页呈现:DNS的“第一次亲密接触”**
  • 聊聊更新中断和更新事件那些事儿
  • 【C++】不推荐使用的std::allocator<void>
  • 对于程序员的个人理解
  • 机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征
  • 【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025
  • 【STM32】ST-Link V2.1制作
  • 软件工程第六章-详细设计