Как синхронизировать файлы кода на окнах с WSL / Linux? - PullRequest
0 голосов
/ 28 сентября 2018

Обычно у меня есть некоторый код C / C ++, который мне нужно собрать и отладить на машине с Linux.К сожалению, на моем ноутбуке с ОС Windows недостаточно свободного места для установки некоторых дистрибутивов Linux, а также недостаточно свободного рома для комфортной работы виртуальной машины.До сих пор я справлялся с этим довольно удобно, используя WSL, но масштаб был довольно небольшим.Было легко редактировать и отлаживать 2-3 файла .c через CLI и gdb, но это стало очень раздражающим в крупномасштабных проектах.

Я хочу что-то простое как "редактировать код в Windows IDE, скомпилироватьудаленный linux / WSL (проект использует Makefiles) и предпочтительно отлаживать его через gdb ".

VS имеет что-то близкое к тому, что я хочу, но не может иметь дело с существующими проектами Linux.Нужно создать новую конфигурацию, которая чужда Makefile проекта.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Я хочу что-то простое, например, "редактировать код в Windows IDE, скомпилировать его на удаленном linux / WSL

У вас будет что-то простое.
Только с Windows 19.03 хотя:

См. " Обновленный WSL в Windows 10 версии 1903 позволяет получать доступ к файлам Linux из Windows "

Крейг Лоуэн из Microsoft говорит:

В прошлом создание и изменение файлов Linux из Windows приводили к потере файлов или повреждению данных. Это стало крайне востребованной и долгожданной функцией. Мы с гордостью сообщаем, что теперь у вас есть простой доступвсе файлы в вашем дистрибутиве Linux из Windows.

Итак, как это работает? Далее он объяснит:

Короче говоря: файловый сервер протокола 9P облегчает запросы, связанные с файлами, сWindows выступает в роли клиента.

Мы изменили демон инициализации WSL, добавив в него сервер 9P . Этот сервер содержит протоколы, поддерживающие Linuxadata, включая разрешения.
Существует служба и драйвер Windows, которые действуют как клиент и взаимодействуют с сервером 9P (который работает внутри экземпляра WSL).
Клиент и сервер взаимодействуют по AF_UNIX* сокеты 1031 *, поскольку WSL позволяет взаимодействовать между приложением Windows и приложением Linux, используя AF_UNIX, как описано в этого сообщения .

Предупреждение:

Старые правила по-прежнему применяются, вам НЕ следует обращаться к файлам Linux внутри папки AppData!
Если вы пытаетесь получить доступ к файлам Linux через папку AppData, вы обходите сервер 9P, что означает, чтоу вас не будет доступа к файлам Linux, и вы можете повредить дистрибутив Linux.

0 голосов
/ 01 ноября 2018

Я не уверен насчет C и C ++, но похоже, что это точно так же, как то, как я работаю в нодах и javascript каждый день.

Я проверяю свой код, используя git внутри WSL, в таком месте, как /mnt/c/code/myproject.Затем, используя возвышенный / VS код / ​​веб-шторм, я редактирую файлы в окнах в расположении c:\code\myproject, это работает очень хорошо и делает это каждый день в течение года.

Следует помнить, что вынеобходимо убедиться, что выбранный вами редактор сохраняет файлы с окончаниями строки linux и что все операции командной строки выполняются внутри WSL.

Пожалуйста, ознакомьтесь с этой статьей , чтобы увидеть различия между файлами windows и linuxи как это работает внутри WSL.

...