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平台运行(计算机)。