我正在尝试使用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的末尾是一个可行的选择吗?
答案 0 :(得分:0)
你不必在msys中运行gdb(或gcc和所有其他MinGW工具) - 在这方面它不像Cygwin。如果您从Windows cmd控制台运行它,它应该工作。
msys shell对于运行由许多Linux源自开源项目使用的Autoconf生成的配置脚本很有用,但其环境独立于Windows环境。