【问题标题】:Apple Mach-O Linker Error - duplicate symbols for architecture x86_64Apple Mach-O 链接器错误 - 架构 x86_64 的重复符号
【发布时间】:2015-05-04 04:21:50
【问题描述】:

我已经尝试了 stackoverflow 上所有可用的答案,但似乎没有任何效果。

每当我创建 MMRecord 的 (TCRecord) 子类时,都会出现以下错误。

错误: duplicate symbol _MMRecordErrorDomain in: /Users/mavericks/Library/Developer/Xcode/DerivedData/Beered-efrmoegppszsqtbcbtfrytgkdlyy/Build/Intermediates/Beered.build/Debug-iphonesimulator/Beered.build/Objects-normal/x86_64/TCRecord.o /Users/mavericks/Library/Developer/Xcode/DerivedData/Beered-efrmoegppszsqtbcbtfrytgkdlyy/Build/Products/Debug-iphonesimulator/libPods-MMRecord.a(MMRecord.o) ld: 1 duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经尝试过的事情:

  • 尝试删除其他链接器标志中的 -ObjC
  • 我已经检查了目录中是否有任何重复文件
  • 在编译源下没有重复的实现文件。

我正在使用的第三方库: MM记录 https://github.com/mutualmobile/MMRecord

【问题讨论】:

  • 查看您导入 TRCRecord 和 MMRecord 的文件...是 .h 文件还是 .m 文件
  • 当我创建作为MMRecord子类的TCRecord时,MMRecord.h文件被导入到TCRecord中
  • 哦..没关系...但这是最常见的原因...不小心把 .m 而不是 .h ...
  • 你在你的项目中使用过coco pods吗?
  • @SarathiOS 是的,我正在使用可可豆荚

标签: ios objective-c xcode linker mmrecord


【解决方案1】:

现在,在您的项目设置中,搜索“gcc_no”并将标志设置为 NO,直到我们解决了问题。这应该允许您构建您的项目。

【讨论】:

    【解决方案2】:

    尝试删除多余的没有用的框架。

    【讨论】:

    • 我只添加了将在项目中使用的框架
    • TCRecord.o 和 MMRecord.o 有一些共同点。哪个产生了这个错误。就像您两次定义了相同的事物一样。这是冲突。
    • 正如错误所说的“重复符号_MMRecordErrorDomain”,常量MMRecordErrorDomain 是在MMRecord 中定义的。我所做的只是创建了 MMRecord 的子类。 TCRecord中没有其他代码
    • 你还没有添加任何与C相关的方法?它主要导致错误,就像您添加 MAIN 的方法一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2014-01-16
    • 1970-01-01
    • 2020-01-14
    • 2017-09-14
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多