g++ не работает в командной строке Windows. Cygwin установлен

Я установил Eclipse и CDT (для использования C/C++ в eclipse необходим CDT), а также установил Cygwin, чтобы иметь возможность компилировать свои файлы.

В переменных среды я установил путь, чтобы включить следующее: «C:\cygwin\bin;»

g++, make и GDC устанавливаются через Cygwin. Убедился в этом, поискав их в папке bin - они там все есть.

Если я ввожу «сделать» в командную строку Windows, появляется следующее:

make: *** No targets specified and no makefile found.  Stop.

Если я ввожу «g++» или «gdc» в командную строку Windows, появляется это (или подобное):

'g++' is not recognized as an internal or external command,
operable program or batch file.

Итак, другими словами, make работает, а остальные нет... но они в одной папке bin! Ввел меня в полное замешательство.

Если я попытаюсь открыть Cygwin Bash Shell, g++, make и GDC будут работать там.

Однако мне нужно, чтобы он работал в командной строке, чтобы Eclipse мог компилировать программы, которые я пишу в среде IDE.

Если вы знаете, почему это происходит, пожалуйста, дайте мне знать.


person LeigerGaming    schedule 12.03.2009    source источник
comment
Вы изменили путь после того, как открыли оболочку cygwin? Если это так, он не уловит изменения в окружающей среде. Попробуйте перезапустить оболочку cygwin и посмотреть, сохраняется ли проблема.   -  person ConcernedOfTunbridgeWells    schedule 12.03.2009


Ответы (6)


Я мало использовал cygwin, но насколько я понимаю, вы должны использовать его из оболочки cygwin bash.

если вам нужен g++, make и т. д., используйте mingw, с ним g++ работает из обычной командной строки Windows.

person hasen    schedule 12.03.2009
comment
Да, спасибо :) Установка mingw решила проблему, как только я добавил папку bin MingW в путь. Спасибо! - person LeigerGaming; 12.03.2009
comment
Как и было предложено вначале, я установил MingW и добавил bin-файл программы в %PATH% Это решило проблему. Я до сих пор не знаю, почему он не работал раньше, поскольку он определенно находил g++ в нужном каталоге (доказано, когда я использовал «который» для Windows). Спасибо за помощь, ребята. - person LeigerGaming; 12.03.2009

Вот что случилось со мной и как я это исправил. Мой C:\cygwin\bin\g++.exe — это ярлык, указывающий на C:\etc\alternatives\g++.exe, который указывает на C:\cygwin\bin\g++-3.exe. Замена g++ на g++-3 сработала для меня.

person ylu    schedule 15.12.2009
comment
Я нашел тот же ярлык при установке и использовал то же решение. - person Tim Henigan; 15.12.2009

В C:\cygwin\bin посмотрите, есть ли там g++.exe. В противном случае установка была выполнена неправильно, и вам может потребоваться повторная установка. Это была моя проблема, и она решена :)

person Newb    schedule 29.12.2012

Добавление путей cygwin к переменной Path сработало для меня (Windows 8.1 64 бит):

Перейдите в свойства системы и выберите дополнительные свойства системы.

Перейдите к переменным среды и выберите «Путь в системных переменных», нажмите «Изменить».

Добавьте пути Cygwin... для 32-битной версии:

C:\Cygwin\bin;C:\Cygwin\usr\bin

для 64 бит:

C:\Cygwin64\bin;C:\Cygwin64\usr\bin
person Laurens    schedule 20.08.2014

В окне CMD попробуйте ввести bash, чтобы запустить оболочку bash в этом окне. Если это не сработает, значит каталог bin cygwin не находится на вашем пути.

Если это сработало, введите введите g++ и введите make, чтобы увидеть пути, которые используются для этих команд. Я почти уверен, что ваша проблема связана с вашей переменной PATH.

person Community    schedule 12.03.2009
comment
Когда я ввел bash в командную строку, появилось это: --- bash-3.2$ --- g++ и заставить работать DO из этой строки. - person LeigerGaming; 12.03.2009

Вы можете установить версию которого для Windows, чтобы получить помощь в выяснении, какие именно исполняемые файлы выполняются.

Возможно, он получает make из совершенно другого места, и ваше добавление к %PATH% не работает.

Также проверьте это, набрав echo %path% в том же окне командной строки, в котором вы видите проблему, просто чтобы убедиться.

person unwind    schedule 12.03.2009
comment
раскрутить, я попробовал эхо %PATH% и это появилось: C:\cygwin\bin;C:\Program Files\Java\jdk1.6.0_12\bin;C:\Windows\system32; (... плюс остальные обычные пути...) - person LeigerGaming; 12.03.2009
comment
Я установил который. Ввод, в котором make приводит к '/usr/bin/make', а ввод в котором g++ приводит к '/usr/bin/g++' (тот же путь), но make все еще работает, а g++ нет??? - person LeigerGaming; 12.03.2009