zoukankan      html  css  js  c++  java
  • 011.Bug(duplicate symbol)_01

    1.

    <1.情境:在真机上一切ok,但是模拟器上报错如下(截取自认为有意义的一段)

    duplicate symbol __ZN9WavWriterD1Ev in:

        /Users/xiaoyadong/Library/Developer/Xcode/DerivedData/xiaoshouzhushou-fufyvysyodhmtkdzlivkuefbcsfv/Build/Intermediates/xiaoshouzhushou.build/Debug-iphonesimulator/xiaoshouzhushou.build/Objects-normal/x86_64/wav-A8225E4DB0C5B1B1.o

        /Users/xiaoyadong/Library/Developer/Xcode/DerivedData/xiaoshouzhushou-fufyvysyodhmtkdzlivkuefbcsfv/Build/Intermediates/xiaoshouzhushou.build/Debug-iphonesimulator/xiaoshouzhushou.build/Objects-normal/x86_64/wav-1F067EA0DBC29D79.o

    duplicate symbol __ZN9WavWriter9writeDataEPKhi in:

        /Users/xiaoyadong/Library/Developer/Xcode/DerivedData/xiaoshouzhushou-fufyvysyodhmtkdzlivkuefbcsfv/Build/Intermediates/xiaoshouzhushou.build/Debug-iphonesimulator/xiaoshouzhushou.build/Objects-normal/x86_64/wav-A8225E4DB0C5B1B1.o

        /Users/xiaoyadong/Library/Developer/Xcode/DerivedData/xiaoshouzhushou-fufyvysyodhmtkdzlivkuefbcsfv/Build/Intermediates/xiaoshouzhushou.build/Debug-iphonesimulator/xiaoshouzhushou.build/Objects-normal/x86_64/wav-1F067EA0DBC29D79.o

    ld: 9 duplicate symbols for architecture x86_64

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

    <2.错误分析

    由倒数第二句的error log中知道duplicate是错误的重要原因,猜测某个类文件重复

    3.错误解决

    然后就是蛋疼的过程,一个个排查看是哪个文件重复,最终找到wav.h和wav.mm并将其删除,重新cmd +R一切ok了.

    4.解决问题后的回头思考

    最初看到这个报错的时候,也曾想会具体指出是哪个文件重复了,而Xcode里的error log里的错误文件名全都不同,如:wav-A8225E4DB0C5B1B1.o & wav-1F067EA0DBC29D79.o & wav-A8225E4DB0C5B1B1.o & /wav-1F067EA0DBC29D79.o等九个文件名不同的文件,所以一下不知所措。现在回想TA们所有格式均为“wav-一串字符”,所以可以尝试搜索wav的。

  • 相关阅读:
    哈夫曼树及哈夫曼编码
    01背包问题
    Java IO
    Java对象的复制三种方式
    TCP三次握手和四次挥手
    轻量级Java Web框架的实现原理
    Java并发
    消息队列
    赋值、浅拷贝、深拷贝
    Python文件操作(txtxlsxcsv)及os操作
  • 原文地址:https://www.cnblogs.com/juicecoffeetea/p/4710729.html
Copyright © 2011-2022 走看看