我在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)
答案 0 :(得分:6)
如果您启动报告导航器,选择带有警告的构建,然后展开失败编译的控制台详细信息,它应该准确描述两个重复引用的位置(在我的示例中,在{{1}中) }和AppDelegate.o
,后者是因为我“意外”在ViewController.o
中#import
AppDelegate.m
而不是AppDelegate.h
执行了ViewController.m
:
在左侧面板的项目导航器中,单击搜索选项卡,然后查找AppDelegate
。无论如何,您可以像这样搜索整个项目:
您也可以通过输入命令 + shift + O (字母“Oh”)来搜索符号:
如果您在不同的源文件中定义了AppDelegate
符号,那么最后一种方法只会找到它,但这是另一种需要考虑的途径。
答案 1 :(得分:1)
单击Xcode中的Report Navigator选项卡( command 8 ),然后单击显示红色构建错误图标的构建。它应该更具体地向您显示找到错误的位置。如果您想了解更多信息,请点击右侧的“汉堡包”式按钮: