работает GCC в Cygwin - PullRequest
       26

работает GCC в Cygwin

8 голосов
/ 04 июня 2010

Я установил Cygwin в моей системе. Но когда я пытаюсь использовать команду gcc, она говорит:

bash: gcc: command not found

Может кто-нибудь дать мне решение, пожалуйста?

Ответы [ 6 ]

16 голосов
/ 01 декабря 2012

В моей установке также не было общей команды gcc, поэтому я сделал для нее символическую ссылку:

cd /usr/bin
ln -s i686-pc-cygwin-gcc-3.4.4.exe gcc

Теперь проверьте, сработало ли это, выполнив which gcc, которое должно дать вам /usr/bin/gcc, а затем gcc должно дать вам gcc: no input files. Обратите внимание, что ваша версия i686-pc-cygwin-gcc-3.4.4.exe может отличаться. Проверьте это в / usr / bin.

4 голосов
/ 23 октября 2013

Возможно, при установке Cygwin вы не выбрали gcc, gdb и не создавали пакеты.

У меня была такая же проблема, и она была решена после того, как я выбрал вышеупомянутые пакеты.

3 голосов
/ 23 апреля 2012

Это может быть связано с отсутствием префикса компилятора .

По умолчанию большинство make-файлов будут искать gcc.exe. Если вы используете другой компилятор, скажем, i686-pc-mingw32-gcc.exe, то make не найдет его, если вы не скажете это. Вы можете сделать что-то вроде

PREFIX=i686-pc-mingw32-

make CC=${PREFIX}gcc

Использование бинарных файлов Linux

2 голосов
/ 04 июня 2010

Пара вещей:

  • Я всегда устанавливаю целый пакет Cygwin. Я полагаю, что в более ранних версиях были проблемы с зависимостями, которые сейчас исправлены, но это все еще хорошая привычка. Вы никогда не знаете, когда вам может понадобиться самый эзотерический бит Cygwin.

  • Возможно, вам придется изменить свой путь. Все инструменты обычно можно найти нормально, если вы работаете внутри оболочки Cygwin bash, но это не обязательно так из cmd.exe.

Маловероятно, что это будет последним, поскольку ваше сообщение об ошибке исходит от самого bash, поэтому я вполне уверен, что именно так вы его используете.

Убедитесь, что у вас есть /usr/bin/gcc из bash, и что ваш путь включает в себя /usr/bin где-то:

pax> echo $PATH
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS

pax> which gcc
/usr/bin/gcc

Если его там нет, вернитесь и переустановите все (или соответствующий пакет разработки, если вы не хотите всего). Если он там есть, и ваш путь не имеет его, измените ваш путь, либо в /etc/profile, либо в эквивалент в вашем домашнем каталоге.

0 голосов
/ 12 ноября 2017

Существует еще одна трудно обнаруживаемая ошибка, которая также может быть причиной этой ошибки,

Если ваш Makefile использует PATH в качестве переменной, может произойти ошибка gcc not found.
Это потому, что он временно меняет системный путь.

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

0 голосов
/ 06 ноября 2013

Еще одна связанная с этим проблема, о которой здесь не упоминалось, - из командной строки компилятору требуется обновить переменную пути среды, чтобы найти расположение заголовочных файлов c ++.В Windows вы можете просто обновить среду пути с помощью графического интерфейса «Расширенные свойства системы» и добавить расположение включаемых файлов c ++.Это обновит переменную среды PATH в Windows cmd & Cygwin автоматически после перезапуска оболочки.

Чтобы обновить PATH из Linux или тип оболочки Cygwin ... PATH = $ PATH: / your_path_here Пример: PATH = $PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/c++ Также неплохо добавить только каталог include: PATH = $ PATH: / cygdrive / c / cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/ ... или проверьте правильные каталоги для местоположения включаемых файлов вашей установки, я рекомендую установить mingw для использования с Cygwin, который вызывается с g ++.

Чтобы установить дополнительные необходимые пакеты в Cygwin, перезапустите утилиту установки Cygwin и проверьте установку из Интернета, чтобы добавить пакеты из веб-хранилищ и добавить mingw-gcc-g ++ & mingw-binutils.Чтобы скомпилировать ваш код: g ++ hello.cpp -o hello

Если вы используете утилиту gcc, вместо этого скомпилируйте ее с помощью команды: gcc hello.cpp -o hello -lstdc ++ ..., чтобы получить исполняемый файл.

Пока у вас установлен gcc или mingw и путь к включаемым файлам c ++ находится в вашей среде пути, команды будут работать.

...