我正在尝试在Xcode中设置一个使用Makefile构建的C ++项目。
我开始使用一个完全空的项目(空模板),添加一个外部构建系统目标并正确设置路径:
但是断点不起作用。我使用单个.cpp文件创建了一个非常简单的测试项目,但无论我尝试什么,都会忽略断点:
正如other question中所述,我试图转到产品 - >编辑方案...并检查'使用自定义工作目录'并将其设置为与可执行文件相同的目录,但它没有帮助。
我的所有文件(源代码,生成文件,可执行文件,项目文件)都在Finder的单个文件夹中(在Xcode中也是如此)。
如果重要我的Makefile也很简单:
BUILD = .
TARGET = $(BUILD)/test
all:
g++ test.cpp -o $(TARGET)
答案 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文件位于正确的位置。