我遇到的问题是,即使在安装 gdb 之后,每当我尝试编译代码时,Eclipse 仍然会给出错误消息“Error with command --gdb version”。 我完全遵循了这个指南:Eclipse GDB MacOSX Mavericks,但它没有修复它。任何想法还有什么可能是错误的吗?
您必须将 Eclipse 中 GDB 的路径从
gdb
更改为 /usr/local/bin/gdb
或类似路径。换句话说,指定完整路径。
在终端中运行
which gdb
应该会告诉你什么是正确的路径。
您可以在 Eclipse 中全局设置此属性(首选项 -> C/C++ -> 调试 -> GDB)或每个项目。我建议全局更改它,但请注意,更改值之前创建的运行配置仍将具有旧值,并且需要手动更新。打开运行(调试)配置并检查“调试”选项卡。
虽然 Marco83 的答案确实有效,但我想要一些对我的学生来说开箱即用的东西,只有一些学生使用 Mac OS X(其他人有使用 MinGW 的 Windows 计算机和 Linux 计算机)。
我认为 Eclipse 可能会在它找到 gcc 和 g++ 的同一目录中查找 gdb,因此我转到 /opt/local/bin,其中“port”放置 ggdb,并在其中添加了到 /usr/bin/gcc 的软链接和 /usr/bin/g++
同时我添加了gdb到ggdb的软链接
到目前为止一切顺利,但我的 El Capitan 上的默认 PATH 环境变量的 /usr/bin 位于 /opt/local/bin 之前
我更改了终端窗口中 PATH 的顺序,并从终端窗口启动了 Eclipse,类似于 ...
.../Applications/Eclipse.app/Contents/MacOS/eclipse
这似乎证明我的推测是正确的。 Eclipse 现在发现 gdb 程序内部没有任何修改。 这样我就可以轻松地使用所需的 PATH 顺序启动 Eclipse。
我编辑了 .../Applications/Eclipse.app/Contents/Info.plist 并添加了“环境变量”属性列表子项以及“PATH”属性,其完整路径与我想要的完全一样。
然后我在终端中使用 /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister 程序强制更新 LaunchService 数据库(正如我在 StackExchange 上了解到的那样),或者您可以重新启动或类似的操作。
这似乎在 El Capitan 上有效。 对此的任何改进都将受到欢迎。