Внутренний построитель: не удается запустить программу "g ++": система не может найти указанный файл - PullRequest
4 голосов
/ 09 апреля 2010
****** Internal Builder is used for build               ******
g++ -ot1.o ..\t1.cpp
Internal Builder: Cannot run program "g++": The system cannot find the file specified.

Build error occurred, build is stopped

Я новичок в eclipse, в Windows XP хочу запустить c / c ++ progms + linux build (cygwin установлен с необходимыми пакетами)
Вышеупомянутая ошибка идет, и сборка терпит неудачу! Пожалуйста, предложите.

Редактировать: добавляется к переменной env пути как e:\cygwin\bin;

Это для ref:

альтернативный текст http://www.freeimagehosting.net/uploads/f1d71ae208.gif

Ответы [ 4 ]

3 голосов
/ 09 апреля 2010

Как вы настроили свой набор инструментов Cygwin в Eclipse CDT ?
(из отличного поста Alex Wu в Tech's Blog )

1 / Установите Cygwin правильно, вам нужны следующие пакеты:

binutils
gcc
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
make
gdb (needed if you want to support debug in eclipse)

вы можете проверить установку cygwin с помощью команды cygcheck -c

alt text

2 / Добавьте %cygwin%\bin к вашему env PATH, затем откройте затмение. вы обнаружите, что цепочка инструментов cygwin будет показана при открытии нового мастера проектов c / cpp.

alt text

3 / Настройка GDB.

Перейти к Windows->Preference->C/C++ -> Debug -> Common Source Lookup.
Добавить следующее 'Path mapping':

\cygdrive\c -> c:\
\cygdrive\d -> d:\ 
other drives if any .......

alt text

1 голос
/ 31 марта 2011

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

Я использую Eclipse IDE для разработчиков на C / C ++ Helios Service Release 2 версия 1.3.2.20110218-0812

uname говорит, что версия Cygwin - CYGWIN_NT-6.1-WOW64

После следования (часто устаревшему) совету многих веб-постов по этому вопросу две вещи наконец-то заставили его работать. Мой системный администратор, у которого в одиночку есть права на установку программного обеспечения, должен был увеличить мои права доступа к папке cygwin / bin, которая теперь называется Чтение и Выполнение. Во-вторых, в Eclipse я изменил тип компоновщика на Внешний: Файл> Свойства C / C ++ Build, Тип компоновщика: Внешний компоновщик. Сборка теперь работает, но не без предупреждения. Я все еще запутался во многих тонкостях установки, и я не уверен, почему переключение на внешнего компоновщика имело такое значение.

0 голосов
/ 04 августа 2012

Еще один способ исправить это - перейти на

project properties / c/c++ build / settings / tool settings / cygwin C compiler

и измените команду на

sh -c 'whatever was already there'

Это будет использовать sh для вызова команды и, таким образом, будет разрешать ссылки Cygwin. Вы также должны будете сделать это для ассемблера и компоновщика. Конечно, вы также должны убедиться, что ваш путь указывает на c: \ cygwin \ bin перед началом затмения.

0 голосов
/ 06 апреля 2012

Я согласен с @pajton: нужно исправить ожидание Eclipse двоичного пути Cygwin от c:\cygwin\usr\bin до c:\cygwin\bin, поскольку авторы Cygwin перешли на монтирование / usr / bin из последнего.

Мне нужно было изменить добавление Eclipse двоичного каталога Cygwin к PATH с c:\cygwin\usr\bin на c:\cygwin\bin в двух конфигурационных местах моей сборки разработчика Juno 20120322-1740:

  • Свойства проекта / C / C ++ Сборка / Среда

  • Запуск / запуск конфигураций ... / Среда

Я также изменил путь к интерпретатору оболочки в параметре обнаружения Compiler invocation command с sh на c:\cygwin\bin\dash.exe,

  • Свойства проекта / Сборка C / C ++ / Параметры обнаружения / Cygwin C Compiler

  • Свойства проекта / Сборка C / C ++ / Параметры обнаружения / Cygwin C ++ Compiler

Это позволило автоматически заполнять включаемые каталоги и встроенные макросы в Project Properties / C / C ++ General / Paths and Symbols.

Поскольку только программы на основе Cygwin, такие как bash.exe, dash.exe, разрешают переносимые символьные ссылки в стиле Cygwin, я изменил команды вызова компилятора с gcc на gcc-4 и с g++ на g++-4,

  • Свойства проекта / Сборка C / C ++ / Настройки / Настройки инструмента / Cygwin C ++ Compiler

  • Свойства проекта / Сборка C / C ++ / Настройки / Настройки инструмента / Cygwin C Compiler

  • Свойства проекта / Сборка C / C ++ / Настройки / Настройки инструмента / Cygwin C ++ Linker

Возможно, это будет сделано автоматически, как только я увижу изменение в git-репозитории, требующем решения этой проблемы,

Когда я исследовал свою проблему, я обратился к Справке / Установить новое программное обеспечение ... / Juno / Языки программирования / Инструменты разработки C / C ++.

Когда я пытался обновить выбранную часть, я получил неясное сообщение о том, что для других частей требуется запрошенное обновление. Когда я нажал «Готово», я получил запрос на перезагрузку. Я не знаю, обновил ли я свой CDT этими действиями.

Если вы хотите отследить нарушения прав доступа во время выполнения, создайте запись внешнего инструмента в меню «Выполнить / Внешние инструменты ... / Настройка внешних инструментов». Укажите c:\cygwin\bin\bash.exe в качестве программы, ${workspace_loc:/PROJECT_NAME/CONFIG_NAME}, например ${workspace_loc:/test/Release}, в качестве рабочего каталога и параметр команды, за которым следует имя программы, например -c "./test.exe", в аргументах. Я обнаружил, что c:\cygwin\bin\dash.exe не маршрутизирует трассировку стека, созданную DLL-библиотекой Cygwin, на stderr, перехваченный Eclipse.

...