代码之家  ›  专栏  ›  技术社区  ›  Dan M.

如何将windows上的代码文件与WSL/linux同步?

  •  1
  • Dan M.  · 技术社区  · 7 年前

    基本上我有一些C/C++代码,我需要在Linux机器上构建和调试。不幸的是,我的windows笔记本电脑没有足够的空闲硬盘空间来安装Linux dist,也没有足够的空闲RAM来运行VM。

    到目前为止,我使用WSL处理它还是比较舒服的,但是规模相当小。通过CLI和gdb编辑和调试2-3.c文件是很容易的,但是在大型项目中它变得非常烦人。

    我想要一些简单的东西,比如“在windowside[X]中编辑代码,在远程Linux/WSL上编译(项目使用makefile),最好通过gdb进行调试”。

    VS有一些接近我想要的东西,但它不能处理现有的Linux项目。它需要创建一个与项目的Makefile无关的新配置。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Damo    7 年前

    我不确定C和C++,但听起来这和我每天在节点和JavaScript中的工作方式完全一样。

    /mnt/c/code/myproject . 然后使用sublime/VS code/webstorm编辑windows中的文件 c:\code\myproject 这是非常好的工作,已经做了一年多,每天这样做。

    需要注意的是,您需要确保您选择的编辑器以linux行结尾保存文件,并且所有命令行操作都在WSL中完成。

    请看这个 article 查看windows和linux文件之间的差异以及如何在WSL中工作。

        2
  •  3
  •   Luan Rios Campos    6 年前

    我知道这个问题有点老了,但我认为解决方法是在WSL文件夹和窗口文件夹之间建立一个符号链接。以下是我在Ubuntu-20.04 WSL中的处理方法:

    1. 以管理员模式访问PowerShell
    2. 类型 cmd.exe
    3. 打开cmd.exe后,键入 mklink /d C:\<path_to_your_Windows_folder> \\wsl$\Ubuntu-20.04\home\<your_user>\<path_to_your_WSL_folder>

    编辑 这是在Windows10版本2004和WSL2下测试的

        3
  •  1
  •   Community Mohan Dere    6 年前


    Windows 19.03 不过:

    请参见“ Updated WSL in Windows 10 version 1903 lets you access Linux files from Windows "

    在过去,从Windows创建和更改Linux文件会导致文件丢失或数据损坏。使这成为可能已经是一个高度要求和期待已久的功能。我们很自豪地宣布,您现在可以从Windows轻松访问Linux发行版中的所有文件。

    简而言之:9P协议文件服务器方便了与文件相关的请求,Windows充当客户端。

    WSL init守护进程包含 9P server . 此服务器包含支持Linux元数据的协议,包括权限。

    客户机和服务器通过 AF_UNIX 套接字,因为WSL允许Windows应用程序和Linux应用程序之间使用 如中所述 this post .

    旧的规则仍然适用,您不应该访问AppData文件夹中的Linux文件!
    如果您试图通过AppData文件夹访问Linux文件,则会绕过9P服务器,这意味着您将无法访问Linux文件,并且可能会损坏Linux发行版。