【主要内容:】

1. 错误提示

2. 分析错误原因

3. 解决问题办法

一、错误提示

 

在我们写代码过程中可能会经常遇到这样一个错误:

  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的错误。

目前我只发现这三种操作会带来这个问题,其他的如果还会带来这个问题,欢迎大家提出来,帮我不断完善博客。

iOS开发之duplicate symbols for architecture x86_64错误的更多相关文章

  1. 【axc】关于duplicate symbols for architecture x86_64错误的第三种可能及其解决办法

    今天分析一下duplicate symbols for architecture x86_64错误  也是困扰我一段时间   不过很幸运 在半个小时内找到了解决方案 百度上对于duplicate sy ...

  2. iOS之duplicate symbols for architecture x86_64错误

    在我们写代码过程中可能会经常遇到这样一个错误: <span style="font-size:32px;color:#ff0000;">ld: 4 duplicate  ...

  3. 解决duplicate symbols for architecture x86_64错误

    duplicate symbols for architecture x86_64 两个不第三方SDK之间的文件里面内容重复了,类似 file.h+file.m 和 CHfile.h+CHfile.m ...

  4. 【iOS】duplicate symbols for architecture x86_64

    今天遇到了这个问题,错误如下: duplicate symbol _OBJC_IVAR_$_BCViewController.bank in: /Users/***/Library/Developer ...

  5. error===>ld: 2 duplicate symbols for architecture x86_64

    一,经历 1> 出现了以下错误,感觉像是GiftAnimationView文件的问题 /Users/liuzhu/Library/Developer/Xcode/DerivedData/test ...

  6. Xcode中 xx duplicate symbols for architecture i386错误提示

    今天在编译iOS项目时Xcode报如下错误: ld: 15 duplicate symbols for architecture i386 clang: error:linker command fa ...

  7. iOS开发-编译出错 duplicate symbols for architecture x86_64

    今天对原来项目文件进行重新整理,根据文件内容进行分类,结果复制粘贴时没注意把一个文件复制了两遍 编译的时候就出现Duplicate Symbol Error 在网上搜素了一圈发现也有人遇到过这个问题, ...

  8. (IOS)N duplicate symbols for architecture i386

    Xcode编译时的error,出现此情况的汇总引用如下: 1.可能存在两个main入口: 2.导入的.h文件可能误写为.m: 3.两文件间可能存在重复定义的全局变量名: 4.使用#include导入文 ...

  9. 用xcode6.3编译早期工程时出现Undefined symbols for architecture x86_64错误的解决办法(转)

    Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1 ...

随机推荐

  1. 2018-7-17-随笔-params和ref、out用法、事件访问器

    **************************************************************************************************** ...

  2. jenkins部署node项目

    docker run -d --name jenkins -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home jenkins

  3. 向excel中循环插入值

    import xlrd #导入excel读模块 from xlutils import copy #导入copy模块 book = xlrd.open_workbook('tb_base_buildi ...

  4. 小甲鱼Python第十三讲课后题--014字符串

     字符串的方法及注释 capitalize()     把字符串的第一个字符改为大写     casefold()     把整个字符串的所有字符改为小写     center(width)      ...

  5. CentOS 7创建自定义KVM模板(现有KVM迁移到另外一台机)

    说明:创建KVM模板有个好处,不用每次都运行命令创建,并且可以为迁移做准备. 一.创建KVM模板 1.下载iso(省略) 2.创建磁盘 qemu-img create -f raw centos7.r ...

  6. ASP.NET WebApi 基于OAuth2.0实现Token签名认证

    一.课程介绍 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将是我们需要思考的问题.为了保护我们的WebApi数 ...

  7. [asp.net core]SignalR一个例子

    摘要 在一个后台管理的页面想实时监控一些操作的数据,想到用signalR. 一个例子 asp.net core+signalR 使用Nuget安装包:Microsoft.AspNetCore.Sign ...

  8. 配置gitlab通过smtp发送邮件

    1. 编辑/etc/gitlab/gitlab.rb文件(加到文件最后面就好了,或者通过搜索找到,新版已有这些配置,只不过都是被注释掉了).以QQ企业邮箱为例: gitlab_rails['smtp_ ...

  9. windows Docker Desktop 搭建mysql,mssql和redis服务

    其实网上关于docker上搭建mysql的文章已经很多了,只是今晚自己搭建的时候遇到一些问题,记录一下 1.首先是pull image , docker pull mysql 2.启动服务 docke ...

  10. webpack Import 动态文件

    其实React Import scss 是非常简单的,比如一般写法import './PromotionPage.scss';,今天遇到一个样式需要覆盖,那么修改后的代码变成了: import './ ...