Я согласен с @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:
Я также изменил путь к интерпретатору оболочки в параметре обнаружения Compiler invocation command
с sh
на c:\cygwin\bin\dash.exe
,
Это позволило автоматически заполнять включаемые каталоги и встроенные макросы в 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.