GDB不是一个可识别的命令- Windows命令提示符

GDB not a recognized command - Windows command prompt

本文关键字:识别 命令 命令提示符 Windows 一个 GDB      更新时间:2023-10-16

我试图使用GDB调试c++程序,但我的系统不识别GDB作为命令。我通过MinGW安装了它以及许多其他工具。我使用的其他功能(gcc, g++)没有任何问题,因此问题似乎与我的一般设置无关。我已经将MinGWbin目录添加到我的PATH中。gdb.exe在该文件夹中。但是,当从我的项目目录中调用它时,它不会运行,它只是错误:"'gdb'不被识别为内部或外部命令、可操作程序或批处理文件。"在使用GDB时,我是否错过了设置或调用中的某些步骤?

编辑:好吧,我想我发现了问题:在我的PATH中有两个MinGW目录,一个在C:MinGW,另一个在文件夹中安装了一些Haskell编译器,我不久前使用过。它似乎默认为Haskell文件夹,可能是因为该目录首先列出。但是,这个文件夹包含gcc和g++,但不包含gdb。通过在msys目录中创建fstab文件,我能够使gdb命令工作,这显然是我在设置MinGW时忘记的一个步骤。我添加了我的C:MinGW目录到它,现在gdb命令工作正常!出于好奇,这个文件是做什么的?

此外,理想情况下,我希望它首先在C:MinGW目录中查找,因为这是我计划保持更新的文件夹,并且包含所有各种应用程序。然而,Haskell目录是通过系统PATH变量指定的,我已经读到它不是一个好主意。改变它们出现的顺序能解决我的问题吗?

编辑2:不是100%确定发生了什么,但是gdb命令现在似乎正在工作。我一直在使用Windows cmd提示符来运行这些工具,所以根据下面的答案(我不需要与msys混淆),我删除了fstab文件,瞧,它仍然有效!然而,我上面的第二个问题仍然存在:让编译器运行完C:MinGWbin而不是C:Program Files (x86)Haskell Platform2013.2.0.0bin的最佳方法是什么?将Haskell位置移出系统路径并移到用户路径的末端是可行的选择吗?

我不得不单独运行pacman -S mingw-w64-x86_64-gdb,然后gdb出现在bin中。

您不必在msys中运行gdb(或gcc和所有其他MinGW工具)-在这方面它不像Cygwin。如果您从Windows cmd控制台中运行它,它应该可以工作。

msys shell对于运行由Autoconf生成的配置脚本非常有用,这些脚本被许多起源于Linux的开源项目所使用,但是它的环境是独立于Windows环境的。