嵌入式开发通常是在linux环境下编译,windows下开发,这就需要在linux环境下访问windows目录了,或者在windows*问linux目录。通常有三种方式
如果是在vm虚拟机上,vm提供了一个设置共享目录功能。
如果linux是一台服务器的话,可以在linux上安装samba服务器,这样windows就可以访问linux的目录了。
第三种就是将windows上的目录挂载到linux目录下,这里记录一下相关的命令与错误解决方法:
1. 在windows 10上新建共享文件夹,比如win,然后设置该文件夹的属性,
win文件夹 -->属性-->共享-->设置共享-->添加用户(Everyone)设置读写属性。
接着设置高级共享-->共享此文件夹-->权限-->添加
接着设置密码保护-->打开网络共享中心-->关闭密码保护
接着打开控制面板-->系统安全-->Windows 防火墙-->启用或关闭防火墙-->关闭防火墙
到这里,windows上的目录已经设置完成了,当然也可以设置密码保护等。接下来在linux上执行挂载命令:
//IP地址是windows地址,后面跟上windows上的共享目录,后面的路径是linux上的挂载路径 (uid 是linux 系统的用户ID gid 是linux 系统的组id 主要是设置挂载过来 目录的所属用户ID 和组ID) sudo mount -t cifs -o username=Everyone,uid=1,gid=1 //192.168.199.123/win /home/sk/win
通常会失败,失败原因有下面这些:
1. mount error(112): host is down
2. cifs_mount failed w/return code = -112
3. mount: cifs 文件系统类型错误、选项错误、//192.168.199.123/win 有坏超级块
解决方法:
1. 在linux平台执行:
sudo apt-get install nfs-common sudo apt-get install smbfs
2. 在Windows上打开SMB服务
打开控制面板-->程序和功能-->启动SMB 1.0/CIFS文件共享支持-->重启生效(一定要重启)
3. 重新执行mount命令
sudo mount -t cifs -o username=Everyone,uid=1,gid=1 //192.168.199.123/win /home/sk/win