15、iOS開發之duplicate symbols for architecture x86_64錯誤

1. 錯誤提示

2.?分析錯誤原因

3. 解決問題辦法

?

一、錯誤提示

在我們寫代碼過程中可能會經常遇到這樣一個錯誤:

?

[objc]?view plaincopy
print?
  1. <span?style="font-size:32px;color:#ff0000;">ld:?4?duplicate?symbols?for?architecture?x86_64??
  2. clang:?error:?linker?command?failed?with?exit?code?1?(use?-v?to?see?invocation)</span>??

?

如圖:

?

?

?

二、分析錯誤原因

仔細讀一下報錯原因可以發現幾個關鍵詞:"duplicate"和"symbols"。

duplicate的中文意思是“重復的、復制的”,而symbols的意思是“符號”。也就是可能在你工程中引入了重復的東西。

?

?

?

三、解決問題辦法

?

我總結了一下,出現duplicate出這個錯誤一般有四種情況:

?

3.1 重復導入相同的文件

? ?第一種情況:在工程中重復導入了某一個類或文件,這一般出現在你添加第三方庫的時候比較多,在不知道的情況下又導入了一次相同的類。

? ?下圖中我在工程中新建了一個src的文件夾,把Person類又復制了一遍又添加到工程中去,如圖:

?

這個時候command + B編譯之后出現如下錯誤:

?

?可以看出來報的還是duplicate的錯誤,雖然duplicate前邊的數字可能不太準確,可是只要你看到duplicate這個關鍵字就可以去你工程中查找是不是有重復的東西被導入。

?

?

3.2?#import "XXX.h" 寫成了#import "XXX.m"

??第二種情況:工程中在#import引入頭文件的時候,將#import "XXX.h" 寫成了#import "XXX.m"。錯誤的引入.m頭文件?

我工程中有一個Person的類,然后我想在main函數中初始化一個對象,這個時候需要先引入Person類的.h文件。這個時候我引入了.m文件,如圖:

? ??command + B 編譯之后發現錯誤,如圖:

你會發現還是duplicate這個錯誤。

?

3.3?在多個文件中重復定義某個東西

?

這個是由網友提供,錯誤原因如下:在兩個文件中定義了相同的枚舉,造成了deplicate的錯誤。

3.4 使用CoreData數據庫時候

?

?

目前我只發現這四種操作會帶來這個問題,其他的如果還會帶來這個問題,歡迎大家提出來,幫我不斷完善博客。

?

轉載于:https://www.cnblogs.com/wn-blog/p/7162110.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254045.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254045.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【死磕Java并發】----- 死磕 Java 并發精品合集

【死磕 Java 并發】系列是 LZ 在 2017 年寫的第一個死磕系列&#xff0c;一直沒有做一個合集&#xff0c;這篇博客則是將整個系列做一個概覽。 先來一個總覽圖&#xff1a; 【高清圖&#xff0c;請關注“Java技術驛站”公眾號&#xff0c;回復&#xff1a;腦圖JUC】 【死磕Java…

vs官方使用教程中文版與英文版

Visual Studio IDE 中文文檔 https://docs.microsoft.com/zh-cn/visualstudio/ide/ Visual Studio IDE documentation https://docs.microsoft.com/en-us/visualstudio/ide/

linux subsys_initcall

宏定義__define_initcall(level,fn)對于內核的初始化很重要&#xff0c;他指示編譯器在編譯的時候&#xff0c;將一系列初始化函數的起始地址值按照一定的順序放在一個section中。在內核初始化段&#xff0c;do_initcalls() 將按順序從該section中以函數指針的形式取出這些函數…

vue transition

Vue.js 教程 (9) : 過渡動畫 Vue.js 提供非常簡單的過渡動畫接口。這些過渡動畫在 Vue.js 將目標元素插入或移除出 DOM 的時候會自動執行。能夠觸發動畫的指令包括 v-if , v-show 和 v-repeat。同時&#xff0c;vm 實例的 $appendTo() , $before() , $after() 和 $remove() 方法…

VS擴展工具

原文發布時間為&#xff1a;2011-03-09 —— 來源于本人的百度文章 [由搬家工具導入]http://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.TypeRootCategory&f%5B0%5D.Valuetools轉載于:https://www.cnblogs.com/handboy/p/7163982.html

工業相機5A參數及其對圖像采集的影響

有些相機會提到5A功能&#xff0c;指的是: Automatic Shutter(自動快門)、Automatic Gain&#xff08;自動增益&#xff09;、Automatic IRIS&#xff08;自動光圈&#xff09;、Automatic Gamma&#xff08;自動伽馬&#xff09;、Automatic White Balance&#xff08;自動白平…

DM6446 OSD

DM6446 OSD TMS320DM6446支持背景窗顏色&#xff0c;兩個視頻窗口&#xff0c;兩個OSD窗口&#xff0c;一個指針(cursor)窗口。它們以遞增的順序排列&#xff1a;一個特有的第二個OSD窗口&#xff08;OSDWIN1&#xff09;可以用來配置成屬性窗口來控制視頻窗口和第一個OSD窗口&…

DOS的一些常用命令

原文發布時間為&#xff1a;2011-02-12 —— 來源于本人的百度文章 [由搬家工具導入]DOS遠程桌面連接命令 mstsc /v: 192.168.1.250 /consolecmd 運行 command刪除文件 rd 文件名/S創建文件 MD 文件名 1. net user admin godmour /add 新建一個…

機器視覺工業鏡頭-Computar

日本Computar鏡頭&#xff0c;全球工業鏡頭、CCTV鏡頭市場占有率第一。CBC板式會社成立于1925年&#xff0c;總部在日本東京。1960年 CBC香港公司成立&#xff0c;是computar鏡頭走向國際市場的前奏。 1979年 研制出第一只手動變焦鏡頭。 1985年 研制出第一款非球面高速鏡頭。1…

C++編程經驗總結1

面向對象的精髓&#xff1a; 主函數其實就是對于類的元素和動作的重新組合來進行一項活動。 一個思想概念&#xff1a;程設是清楚的&#xff0c;完美的。 數學是清楚的&#xff0c;是完美的。 物理是有趣的&#xff0c;尤其是量子物理 生物是清楚的&#xff0c;尤其是基因 外語…

DM365的BSP源碼分析-基于2.6.18內核

DM365的BSP主要包含mach-davinci和plat-davinci兩個目錄&#xff08;及相關頭文件&#xff09;&#xff0c;BSP復雜龐大又極其重要&#xff0c;它主要完成了板級的初始化&#xff0c;比如內存映射&#xff0c;時鐘和電源初始化&#xff0c;中斷和IO初始化&#xff0c;CPU及各模…

第四章:Django 模型 —— 設計系統表

1. Django框架提供了完善的模型&#xff08;Model &#xff09;層來創建和存儲數據&#xff0c;每一個模型對應數據庫中的唯一的一張表。 2. Django 模型基礎知識&#xff1a; 。每一本模型是一個Python類&#xff0c;繼承了django.db.models.Model類 。該模型中每一個屬性一個…

DM365 使用BT656協議驅動LCD的實現

前兩天已經調好了&#xff0c;主要是對davinci_platform.c的修改 因為輸入輸出都為pal的制式&#xff0c;所以就在pal的函數中進行了修改。 在PAL設置的函數中&#xff0c;修改如下&#xff1a; /* * setting PAL mode */ static void davinci_enc_set_pal(struct vid_enc_mode…

工業視覺鏡頭NAVITAR

品牌介紹 美國NAVITAR是優越的上等光學系統制造商和供應商&#xff0c;工業視覺鏡頭NAVITAR為機器視覺、檢測和生物醫學診斷行業提供的定制光學解決方案。 工業視覺鏡頭NAVITAR用于鑒定產品、檢查產品缺陷、測量零件尺寸、操縱機器人設備和協助進行科學分析與探索。 還用來引導…

TCP系列48—擁塞控制—11、FRTO擁塞撤銷

一、概述FRTO虛假超時重傳檢測我們之前重傳章節的文章已經介紹過了&#xff0c;這里不再重復介紹&#xff0c;針對后面的示例在說明兩點1、FRTO只能用于虛假超時重傳的探測&#xff0c;不能用于虛假快速重傳的探測。2、延遲ER重傳觸發的進入Recovery狀態時候&#xff0c;并不會…

娛樂一下

6年前&#xff0c;沒幾個人知道尤里米爾納&#xff08;Yuri Milner&#xff09;是誰。但今天&#xff0c;他已經是地球上最有名的投資人了。 短短幾年內&#xff0c;這家伙掌管的風險投資基金DST&#xff08;數字天空科技&#xff09;投遍了全球的互聯網明星企業&#xff0c;并…

機器視覺行業市場現狀及發展前景分析

1.中國的機器視覺起步較晚&#xff0c;目前正處于快速增長期。 我國機器視覺最早起源于20世紀80年代。機器視覺生產線和先進設備自1998年眾多電子、半導體企業落戶廣東、上海以來&#xff0c;先后在國內誕生了國際代理商和機器視覺系統集成商。 第一個階段是1999-2003年的啟蒙…

從bootm 命令講起/U-boot的環境變量: bootcmd 和bootargs

從bootm 命令講起 1 找到linux的內核入口 Bootm命令通過讀取uImage的頭部040字節的信息&#xff0c;將uImage定位到正確的地址&#xff0c;同時找到linux的內核入口地址。 這個地方就涉及到uImage的頭部040字節信息到底是什么的問題?uboot提供了mkimage命令去把040字節加在lin…

關于創建SWAP示例

cd /data 進入指定目錄dd if/dev/zero of/data/swapfile bs1M count102400【參數說明】if文件名&#xff1a;輸入文件名&#xff0c;缺省為標準輸入。即指定源文件。< ifinput file >of文件名&#xff1a;輸出文件名&#xff0c;缺省為標準輸出。即指定目的文件。< of…