Я устанавливаю Cygwin и GNU C компилятор с помощью учебника Как установить последнюю версию GCC на Windows

Я выполнил следующие шаги

  1. Установить Cygwin
  2. Установите необходимые пакеты Cygwin

Третий этап - «Скачать, собрать и установить последнюю версию GCC».
Я застрял, когда запускаю команду make -j4 со следующей ошибкой в Cygwin Terminal .

$ make -j4
make[1]: Entering directory '/home/Prasanna Rajaram/build-gcc-6.1.0'
Configuring in ./intl
Configuring in ./libiberty
Configuring in ./lto-plugin
/bin/sh: /home/Prasanna: No such file or directory
Makefile:7416: recipe for target 'configure-libiberty' failed
make[1]: *** [configure-libiberty] Error 1
make[1]: *** Waiting for unfinished jobs....
Configuring in ./fixincludes
/bin/sh: /home/Prasanna: No such file or directory
Makefile:5330: recipe for target 'configure-intl' failed
make[1]: *** [configure-intl] Error 1
/bin/sh: /home/Prasanna: No such file or directory
Makefile:9308: recipe for target 'configure-lto-plugin' failed
make[1]: *** [configure-lto-plugin] Error 1
/bin/sh: /home/Prasanna: No such file or directory
Makefile:3470: recipe for target 'configure-fixincludes' failed
make[1]: *** [configure-fixincludes] Error 1
make[1]: Leaving directory '/home/Prasanna Rajaram/build-gcc-6.1.0'
Makefile:879: recipe for target 'all' failed
make: *** [all] Error 2

Я также думаю, где это пошло не так. В моем пути к домашней директории '/home/Prasanna Rajaram/ между моим именем и фамилией есть пробел. Я не знаю, как Windows 10 создала такое имя папки в каталоге C:\Users .

Как я могу преодолеть эту проблему? Я не хочу переименовывать каталог пользователя одним словом (например, PrasannaRajaram), так как это может повлиять на другие программы, которые могут использовать этот путь.

Существует также мысль, что этот путь может применяться только для Cygwin, так как он начинается с /home

Как я могу сделать эту работу?

Edit-1 После следующих шагов из ответа ниже

mkdir /home/prasanna
mkpasswd -c > /etc/passwd
sed -i -e "s/Prasanna Rajaram/prasanna/g" /etc/passwd

Вывод на Cygwin теперь выглядит так:

$ make -j4
make[1]: Entering directory '/home/Prasanna Rajaram/build-gcc-6.1.0'
Configuring in ./lto-plugin
Configuring in ./intl
Configuring in ./fixincludes
/home/Prasanna: /home/Prasanna: is a directory
Makefile:9308: recipe for target 'configure-lto-plugin' failed
make[1]: *** [configure-lto-plugin] Error 1
make[1]: *** Waiting for unfinished jobs....
Configuring in ./libiberty
/home/Prasanna: /home/Prasanna: is a directory
Makefile:5330: recipe for target 'configure-intl' failed
make[1]: *** [configure-intl] Error 1
/home/Prasanna: /home/Prasanna: is a directory
Makefile:3470: recipe for target 'configure-fixincludes' failed
make[1]: *** [configure-fixincludes] Error 1
/home/Prasanna: /home/Prasanna: is a directory
Makefile:7416: recipe for target 'configure-libiberty' failed
make[1]: *** [configure-libiberty] Error 1
make[1]: Leaving directory '/home/Prasanna Rajaram/build-gcc-6.1.0'
Makefile:879: recipe for target 'all' failed
make: *** [all] Error 2

1 ответ1

2

https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-passwdinfo

короче:

mkdir /home/prasanna
mkpasswd -c > /etc/passwd
sed -i -e "s/Prasanna Rajaram/prasanna/g" /etc/passwd

закройте весь терминал Cygwin и перезапустите его.

Отказ от ответственности: сборка gcc для эксперта; Я предлагаю вам начать с гораздо более простого проекта.

Обновление из комментариев

  1. После выполнения вышеуказанных действий переместите папки build-gcc-6.1.0 и gcc-6.1.0 папку /home/prasanna

  2. Запустите make -j4 и теперь (из папки /home/prasanna ) он должен работать без проблем

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .