Cygwin & MinGW на Windows 10 - PullRequest
       56

Cygwin & MinGW на Windows 10

0 голосов
/ 18 октября 2019

На моем компьютере с Windows 10 уже установлена ​​Cygwin. Поскольку я начинаю работать с программированием сокетов в среде Windows, я хочу взглянуть на использование MinGW.

У меня они оба на моей машине, но я хочу взглянуть на простые способы «горячей замены» между ними,Здесь есть предыдущий вопрос: GCC на Cygwin, сосуществующий с MinGW , который имеет следующий файл .cmd:

@echo off
rem file: start cmd with cygwin's path
cmd.exe  /k path=C:\cygwin\bin;%path%

Теперь, если я запускаю это как администратор, произойдет пара вещей, которые яна данный момент не понимаю:

  1. Если перейти к control panel -> system -> advanced system settings -> Advanced tab -> Environment Variables -> edit path - ничего не отображается ...
  2. Однако, если я просто наберу path в командной строке cmdпоказывает C:\cygwin\bin.

Итак, я предполагаю, что мои вопросы:

a. в чем разница между вышеперечисленными?

б. Если файл .cmd добавляет элемент пути, какой самый простой способ его удалить?

Я думаю, что если у меня ничего нет в моем пути, то после ввода gcc --version в командной строке cmd должно отобразитьсяошибка, которой на данный момент нет в связи с пунктом 2 выше.

Надеюсь, я понял. Любая помощь, как всегда, ценится.
Роб

РЕДАКТИРОВАТЬ 1: Я нашел следующее: Командная строка для удаления переменной среды из конфигурации уровня ОС

, котораяимеет следующую командную строку:

REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR

Используется для удаления системной переменной FOOBAR. Теперь, если кто-то с большим опытом, чем я, мог бы указать мне, как удалить часть системной переменной ...

1 Ответ

0 голосов
/ 19 октября 2019

1.

Существует два разных пути, один для всей системы и один для пользователя. Последний построен на основе системного и расширен содержимым настроек.

Полученный PATH - это просто основа при запуске программы. Если CMD выполняет ваш маленький пакет, он добавляет C:\cygwin\bin к этому существующему списку. Этот PATH действителен только для этого экземпляра CMD.

2.

Ну, у меня нет хорошей идеи ... Как бы вы выбрали, какой единственный путь удалить из списка в PATH? По индексу, по содержанию, по чему?

Возможно, есть какой-то способ сделать это с существующими командами, такими как «for», но почему вообще путь в PATH?

Вам нравится? чтобы в двух разных средах использовались инструменты Cygwin или MinGW, я бы рекомендовал установить базовый PATH системы и / или пользователя (в диалоге настроек) без них обоих. Затем напишите две маленькие партии, чтобы открыть CMD, и добавьте (или, что мне больше нравится, добавьте) соответствующий путь.

Кстати, разве MinGW не настраивает пункт меню «Пуск», который уже делает это правильно?

...