1

我正在尝试在 Xcode 中设置一个使用 Makefile 构建的 C++ 项目。

我从一个完全空的项目(空模板)开始工作,添加一个外部构建系统目标并正确设置路径:

在此处输入图像描述

但是断点不起作用。我使用单个 .cpp 文件创建了一个非常简单的测试项目,但无论我尝试什么,断点都会被忽略:

在此处输入图像描述

正如另一个问题中所建议的那样,我尝试转到 Product -> Edit Scheme... 并检查“使用自定义工作目录”并将其设置为与可执行文件相同的目录,但它没有帮助。

我所有的文件(源文件、makefile、可执行文件、项目文件)都在 Finder 的一个文件夹中(在 Xcode 中也是如此)。

如果重要的话,我的 Makefile 也很简单:

BUILD = .
TARGET = $(BUILD)/test
all:
    g++  test.cpp  -o $(TARGET)
4

2 回答 2

4

-g开关添加到 gcc 命令以包含如下调试符号:

BUILD = .
TARGET = $(BUILD)/test
all:
    g++ -g test.cpp  -o $(TARGET)

编辑:并选择另一个目标名称,因为 test 是大多数 shell 中的 shell 内置命令,您可能会在从命令行调用程序时遇到麻烦(即使我不确定 Mac OS)。

于 2012-11-21T19:47:43.883 回答
1

我遇到了同样的问题(Xcode 8.3.3),但是将 -g 添加到 makefile 并没有解决它。我发现(在很痛苦之后)makefile 正在清理 .o 文件作为构建的一部分(rm -f $(OBJFILES))。事实证明,符号信息位于 .o 文件中,因此通过删除它们,Xcode 无法再进行调试。我注释掉了 rm 行,现在一切正常。我使用了 -g 标志,它可以工作。与此作斗争的任何人都应确保 .o 文件位于正确的位置。

于 2017-08-22T02:04:59.290 回答