x86_64 架构重复符号

13

我不确定我哪里做错了。
我将我的项目文件夹移动到另一个文件夹,并复制了备份文件夹到桌面。
我尝试打开备份项目并构建,但收到了链接器错误。
所以我决定删除我的备份文件夹并将我的项目文件夹移回桌面。现在我无法编译,收到以下错误。

 Showing Recent Issues clang: error: linker command failed with exit code 1 (use -v to see invocation)

duplicate symbol _main in:
/Users/BRO/Library/Developer/Xcode/DerivedData/SFITNESS-flzvwdymttxhducvwvmhpuaqfzhj/Build/Intermediates.noindex/SFITNESS.build/Debug-iphonesimulator/SFITNESS.build/Objects-normal/x86_64/main-90EC778DD760FD57.o
/Users/BRO/Library/Developer/Xcode/DerivedData/SFITNESS-flzvwdymttxhducvwvmhpuaqfzhj/Build/Intermediates.noindex/SFITNESS.build/Debug-iphonesimulator/SFITNESS.build/Objects-normal/x86_64/main-F627C2B37F247040.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)  

Help Needed

没有派生数据文件夹

pic

仍然是一样的

1. 我打开了Derived Data文件夹并删除了其中的所有内容
2. 我删除了所有模拟器中的项目
3. 我重新启动了xCode,清理并构建

仍然是一样的 Pic 2

将项目添加到GitHub中

link


1
你删除了你的驱动器数据吗? - dahiya_boy
不,我不认为如此,从未接触过驱动器数据。 - Hanz Cheah
根据您的描述,我猜测原因是项目设置中的“库搜索路径”。尝试编辑它。 - lee
@HansheungCheah,你能附上链接器标志的截图吗? - Vivek
啊..我明白了,问题出在我的Targets/Compiled Sources下有多个条目(在新版XCode中是在Build Phases/Compile Sources下)。我将它们删除后问题得到解决。这个多条目的问题可能与Git合并有关。 - aBilal17
显示剩余11条评论
4个回答

7
您需要向项目添加必要的框架。检查所有第三方框架并搜索其所需的支持框架。例如,如果您添加了Google Analytics,则需要添加CoreDataFoundation等框架。有一些框架缺失,需要第三方框架进行支持。
或者您可以:
  1. 按下"Cmd + Shift + K"shift + cmd + alt + k进行清理,并退出Xcode。
  2. 在终端中运行"rm -rf ~/Library/Developer/Xcode/DerivedData"以删除缓存
  3. 打开项目并重新构建它
链接器命令以退出代码1失败 - 要解决此错误,请按"Cmd + Shift + K"shift + cmd + alt + k,这将为您完成工作。我也遇到了同样的问题,但是使用这行代码解决了它。希望这能解决您的问题。 您的项目输出 -

enter image description here

enter image description here


嗨,谢谢Rashed。我尝试了你的解决方案,但它没有起作用。我尝试了很多次删除DerivedData并重新启动xCode,但它仍然无法构建。 - Hanz Cheah
你试过按Shift + Cmd + Alt + K了吗? - Rashed
我怀疑我从GitHub下载的一些文件或代码,很久以前添加过,但在复制文件夹后,在Objective C中没有正确引用。 - Hanz Cheah
不会有问题 - Rashed
这个答案已经被编辑添加了垃圾图片,应该被删除。 - matt

5
duplicate symbol _main

你有两个main.m文件,函数main()存在冲突。

enter image description here

只需删除 CERangeSlider 中的 main.m 文件,就可以正常工作。


4
我从github上克隆了你的项目,我发现SFITNESSCERangeSlider中都有一个重复的main.m文件。 你可以删除其中一个,这样你的项目就可以正常运行了。

0

如何获取派生数据

  • 打开Xcode。
  • 打开Xcode首选项(Cmd + ,
  • 选择位置选项。
  • 现在您已经看到了场景,现在按照下面图片所示的点进行单击。

    enter image description here

  • 您的派生数据现在已经打开(建议将驱动器数据添加到Finder左侧菜单中)。删除派生数据中的任何内容。

  • 现在从模拟器中删除您的项目。
  • 清理并构建您的项目。

如果您仍然遇到问题,请告诉我们,以便我们可以相应地提供帮助。


嗨,我尝试了你的步骤,但还是出现相同的错误? - Hanz Cheah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接