【问题标题】:GDB not a recognized command - Windows command promptGDB 不是一个可识别的命令 - Windows 命令提示符
【发布时间】:2014-08-22 01:37:47
【问题描述】:

我正在尝试使用 GDB 调试 C++ 程序,但我的系统无法将 gdb 识别为命令。我通过 MinGW 安装了它以及许多其他工具。我使用的其他功能(gcc、g++)没有任何问题,所以问题似乎与我的一般设置无关。我已将 MinGW\bin 目录添加到我的 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:\MinGW\bin 而不是 C:\Program Files (x86)\Haskell Platform\2013.2.0.0\bin 的最佳方法是什么?将 Haskell 位置移出系统 PATH 并移至用户 PATH 的末尾是否可行?

【问题讨论】:

  • echo %PATH%dir whatever-your-mingw-bin-path-is 的输出是什么?
  • 输入完整路径时会发生什么,例如“c:\MinGW\bin\gdb.exe”?我先做dir c:\MinGW\bin\gdb.exe看是否找到文件,然后取出dir尝试运行。
  • 编辑 PATH 就像编辑 Windows 注册表一样。踢自己的脚很容易,但有时这是解决问题的唯一方法。也就是说,只要包含 GDB 的目录在路径上,shell 就应该能够找到 GDB ......所以我怀疑这里还有其他东西在起作用。

标签: c++ windows gdb


【解决方案1】:

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

msys shell 对于运行 Autoconf 生成的配置脚本很有用,许多 Linux 起源的开源项目都使用它,但它的环境独立于 Windows 环境。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2012-11-13
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2013-12-30
    相关资源
    最近更新 更多