2014-08-22 3 views
0

Я пытаюсь использовать GDB для отладки программы на C++, но моя система не распознает gdb как команду. Я установил его вместе со многими другими инструментами через MinGW. У меня не было проблем с другими функциями, которые я использовал (gcc, g ++), поэтому проблема не связана с моей общей настройкой. Я добавил каталог MinGW \ bin в свой PATH. Файл gdb.exe находится в этой папке. Но он не запускается при вызове из моего каталога проекта, это просто ошибки: «« gdb »не распознается как внутренняя или внешняя команда, операционная программа или командный файл». Есть ли какой-то шаг в настройке или вызове, который я пропустил для использования GDB?GDB не распознанная команда - командная строка Windows

EDIT: Хорошо, я нашел проблему: в моей PATH есть две директории MinGW, одна в C: \ MinGW и другая в папке, которая была установлена ​​с некоторыми компиляторами Haskell, которые я использовал некоторое время назад. Кажется, что он по умолчанию не соответствует папке Haskell, возможно, потому, что этот каталог указан первым. Однако эта папка содержит gcc и g ++, но не gdb. Мне удалось заставить команду gdb работать, создав файл fstab в каталоге msys, что я, по-видимому, забыл при настройке MinGW. Я добавил к нему свой каталог C: \ MinGW, и теперь команда gdb работает исправно! Из любопытства, что делает этот файл?

Кроме того, в идеале я хотел бы сначала посмотреть в каталоге C: \ MinGW, так как это папка, которую я планирую продолжать обновлять, и ту, которая содержит ВСЕ различные приложения. Однако каталог Haskell задается с помощью переменной PATH системы, которую я прочитал, что не рекомендуется касаться. Будет ли изменение порядка, по которому они появляются, даже исправить мою проблему?

РЕДАКТИРОВАТЬ 2: Не уверен, что произошло, но команда gdb работает сейчас. Я всегда использовал приглашение Windows cmd для запуска этих инструментов, поэтому в соответствии с нижеприведенным ответом (чтобы мне не нужно было связываться с msys) я удалил файл fstab, и вот, он все еще работает! Тем не менее, мой второй вопрос выше: «Каков наилучший способ заставить компиляторы работать с C: \ MinGW \ bin вместо C: \ Program Files (x86) \ Haskell Platform \ 2013.2.0.0 \ bin? Перемещает ли местоположение Haskell из системы PATH и до конца пользователя PATH является жизнеспособным вариантом?

+0

Каков вывод 'echo% PATH%' и 'dir whatever-your-mingw-bin-path-is'? – user657267

+0

Что происходит, когда вы вводите полный путь, например «c: \ MinGW \ bin \ gdb.exe»? Я сначала выполнил 'dir c: \ MinGW \ bin \ gdb.exe', чтобы узнать, найдет ли он файл, а затем вытащите' dir', чтобы попытаться запустить его. – indiv

+0

Редактирование PATH похоже на редактирование реестра Windows. Легко стрелять в ногу, но иногда это единственный способ решить проблему. Тем не менее, пока каталог, содержащий GDB, находится на пути, оболочка должна иметь возможность находить GDB ... поэтому я подозреваю, что здесь есть что-то другое. – David

ответ

0

Вам не нужно запускать gdb (или gcc и все другие инструменты MinGW, если на то пошло) в пределах msys - это не похоже на Cygwin в этом отношении. Если вы запустили его из консоли cmd Windows, он должен работать.

Оболочка msys полезна для запуска скриптов configure, сгенерированных Autoconf, используемых многими исходными проектами с открытым исходным кодом для Linux, но его среда не зависит от среды Windows.

Смежные вопросы