使用Makefile构建时,Xcode中的断点被忽略

时间:2012-11-21 19:42:11

标签: c++ xcode makefile lldb

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

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

enter image description here

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

enter image description here

正如other question中所述,我试图转到产品 - >编辑方案...并检查'使用自定义工作目录'并将其设置为与可执行文件相同的目录,但它没有帮助。

我的所有文件(源代码,生成文件,可执行文件,项目文件)都在Finder的单个文件夹中(在Xcode中也是如此)。

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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