如何解決duplicate symbols for architecture x86_64編譯錯誤

先貼一段錯誤信息

....../*Objects-normal/x86_64/XXXX.o(前面太多,就不貼了,看我貼的這些就行)
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

一看錯誤信息可知是鏈接錯誤.
翻譯一下,首先可以知道錯誤信息是在鏈接XXXX.o時出錯的,(.o是鏈接文件).然后底下的ld: 5 duplicate symbols for architecture x86_64*的意思是在x86-64架構下有5個重復符號(幾個我們不用管),重復是個關鍵字,分析有以下兩種情況可能會導致這種錯誤的發生:

  • 一:項目中重復導入了某些文件.,這個一般在導入三方庫時可能會重復導入.
    解決辦法:只需要在文件目錄中查找到重復導入的文件,刪掉即可,或者將整個三方庫刪除掉,重新導入,或者用cocopods導入.
  • 在項目的某些地方需要#import"XXXX.h"*而#import"XXXX.m".

解決辦法:認真檢查項目,找到錯誤改正即可.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容