PopOS访问Windows共享文件夹无法编译运行C、Python代码问题求解
问题根因
报错由两个核心原因导致:
- GVFS自动挂载的SMB共享路径包含冒号等特殊字符,GDB、VS Code、Python解释器等工具解析路径时会识别失败
- 默认GVFS挂载的SMB共享未开启执行权限,即使路径解析正确,也无法直接运行编译生成的二进制文件、或是带执行权限的Python脚本
解决方案
方案1:手动挂载SMB共享到本地普通路径(最稳定,优先推荐)
此方案完全兼容你的使用需求,Windows端仍可正常编辑共享目录内的代码,PopOS端可正常编译运行:
- 先创建本地挂载目录:
sudo mkdir /mnt/win_share - 安装SMB挂载依赖工具:
sudo apt install cifs-utils - 执行挂载命令,替换命令内的占位参数为你自己的配置:
sudo mount -t cifs //192.168.xx.x/你的Windows共享名 /mnt/win_share -o username=Windows登录账号,password=Windows登录密码,uid=1000,gid=1000,exec,umask=0022
参数说明:uid=1000,gid=1000对应PopOS默认普通用户的ID,exec参数开启挂载目录的执行权限,umask=0022设置默认文件权限满足编译运行要求 - 挂载完成后直接在VS Code中打开
/mnt/win_share路径下的代码,即可正常编译、GDB调试、运行Python脚本 - 如需开机自动挂载,可在
/etc/fstab文件末尾添加如下配置://192.168.xx.x/你的Windows共享名 /mnt/win_share cifs username=Windows登录账号,password=Windows登录密码,uid=1000,gid=1000,exec,umask=0022 0 0
方案2:代码自动同步到本地目录(适合不想修改挂载配置的场景)
在PopOS本地创建专属工作目录,用同步工具将Windows共享目录内的代码实时同步到本地目录,直接在本地目录完成编译运行:
- 同步命令参考:
rsync -av "/run/user/1000/gvfs/smb-share:server=192.168.xx.x,share=你的Windows共享名/" ~/local_workspace/ - 可搭配定时任务或inotify工具实现代码修改后自动同步
方案3:软链接适配GVFS路径(临时使用场景)
如果只是临时调试,可将GVFS的SMB共享路径软链接到本地无特殊字符的路径,解决路径解析问题:
- 创建软链接命令:
ln -s "/run/user/1000/gvfs/smb-share:server=192.168.xx.x,share=你的Windows共享名" ~/win_share_link - 后续直接打开
~/win_share_link目录下的代码即可,此方案稳定性低于手动挂载,偶尔会出现权限异常
内容的提问来源于stack exchange,提问作者amalp12
相关产品推荐
相关产品推荐

