如何找到重复符号的位置

时间:2015-01-27 23:35:41

标签: xcode duplicate-symbol

我在compile sources中列出了几个文件,并且它不希望按名称排序,所以我不得不手工排序查找重复项。有更简单的方法吗?它只有大约100个文件,但知道更有效的方式会很好。

错误示例:

...
duplicate symbol _OBJC_CLASS_$_AppDelegate in:
    /Users/xxxx/Library/Developer/Xcode/DerivedData/JOMiPhoneApp-ginylosefnqdjpfprrdipmpewzun/Build/Intermediates/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/arm64/AppDelegate-215945057A88172.o
ld: 34 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2 个答案:

答案 0 :(得分:6)

如果您启动报告导航器,选择带有警告的构建,然后展开失败编译的控制台详细信息,它应该准确描述两个重复引用的位置(在我的示例中,在{{1}中) }和AppDelegate.o,后者是因为我“意外”在ViewController.o#import AppDelegate.m而不是AppDelegate.h执行了ViewController.m

enter image description here

在左侧面板的项目导航器中,单击搜索选项卡,然后查找AppDelegate。无论如何,您可以像这样搜索整个项目:

enter image description here

您也可以通过输入命令 + shift + O (字母“Oh”)来搜索符号:

search for symbols

如果您在不同的源文件中定义了AppDelegate符号,那么最后一种方法只会找到它,但这是另一种需要考虑的途径。

答案 1 :(得分:1)

单击Xco​​de中的Report Navigator选项卡( command 8 ),然后单击显示红色构建错误图标的构建。它应该更具体地向您显示找到错误的位置。如果您想了解更多信息,请点击右侧的“汉堡包”式按钮:

screenshot showing hamburger button