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

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

百度上对于duplicate symbols for architecture x86_64这种错误最多的两种解决方法是:

第一:有框架文件没有包含,导入错误即解决
第二:是由于我的粗心,在导入头文件时不小心把.h导入了.m文件,所以出现了上述错误,有一个duplicate的错误提示,修改了导入部分OK了。

但是。。我却遇到了第三种情况。。

duplicate symbol _RoutePlanningViewControllerStartTitle in:

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/MyTabbarViewController.o

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/NavigationViewController.o

duplicate symbol _RoutePlanningViewControllerDestinationTitle in:

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/MyTabbarViewController.o

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/NavigationViewController.o

duplicate symbol _RoutePlanningPaddingEdge in:

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/MyTabbarViewController.o

/Users/axc_5324/Library/Developer/Xcode/DerivedData/health_town-arzecxyrnmmpyxacejwclxojeaml/Build/Intermediates/health town.build/Debug-iphonesimulator/health town.build/Objects-normal/x86_64/NavigationViewController.o

ld: 3  duplicate symbols for architecture x86_64

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

有道给我的翻译是这样的:重复的路线规划视图控制器开始象征冠军 = =。。玛德制杖

不过也比较清楚 。。。某个controller出现了问题  出现了导入重复错误。

可是!他喵的我检查了半天也!没!有!导!入!错!误!

经过代码的一步步排查(还好我从小养成了良好的编码风格,要么光找就得找一天)。。发现了这么三个奇(sha)葩(bi):

这是高德SDK里的路径导航用到的变量值,当时直接复制过来的。。没管那么多,谁知道这时候掉链子了

我盯着他看了半天,他盯着我看了半天。大眼盯小眼看了三分钟,,,,,

嗯,delete(去死吧你!)

然后把他们声明到了interface里去,赋值在view did load中进行  假装这是普通变量

编译,,成功!

我也不知道为什么高德2015年的SDK Demo为啥不会出错,哦对  忘了说了  这个情况在真机上正常  但无法在模拟器中编译

以上就是对于duplicate symbols for architecture x86_64这种报错的第三种解决办法,,可以检查检查代码中有没有声明的弱语法变量,而且还没有编译器的提示的那种。。最后最重要的一点 大家不要随便命名!不要随便命名!不要随便命名!否则很容易和SDK中的对象或变量重名!

毕竟SDK不会告诉你他用了那些第三方库是不是?这样很没B格的好吧。。所以命名最好按照规范命名。

祝大家编程愉快!

时间: 2024-11-10 17:05:49

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

iOS开发之duplicate symbols for architecture x86_64错误

一.错误提示 在我们写代码过程中可能会经常遇到这样一个错误: 1. duplicate symbols for architecture x86_64 2.clang: error: linker command failed with exit code 1 (use -v to see invocation) 如图: 二.分析错误原因 仔细读一下报错原因可以发现几个关键词:"duplicate"和"symbols". duplicate的中文意思是"重

iOS之duplicate symbols for architecture x86_64错误

在我们写代码过程中可能会经常遇到这样一个错误: [objc] view plain copy print? <span style="font-size:32px;color:#ff0000;">ld: 4 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)</span>

iOS开发报duplicate symbols for architecture x86_64错误的问题

在我们写代码过程中可能会经常遇到这样一个错误: 如图所示: 分析错误原因 仔细读一下报错原因可以发现几个关键词:"duplicate"和"symbols". duplicate的中文意思是"重复的.复制的",而symbols的意思是"符号".也就是可能在你工程中引入了重复的东西. 解决问题办法 我总结了一下,出现duplicate出这个错误一般有三种情况: 1 重复导入相同的文件 第一种情况:在工程中重复导入了某一个类或文件,

如何解决duplicate symbols for architecture x86_64编译错误

ld: 5 duplicate symbols (这里出现的属性就是问题出现的关键)_count for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) /Users/zxtw/Library/Developer/Xcode/DerivedData/FightLandlord-gfkaxalabyaagtcimlrskdbtudbx/Build/

【iOS】duplicate symbols for architecture x86_64

今天遇到了这个问题,错误如下: duplicate symbol _OBJC_IVAR_$_BCViewController.bank in: /Users/***/Library/Developer/Xcode/DerivedData/***-fmtpkcbvfajuuadtvwtzfyjxoywz/Build/Intermediates/***.build/Debug-iphonesimulator/***.build/Objects-normal/x86_64/BCViewControll

由于枚举类型导致的1 duplicate symbol for architecture x86_64错误

错误如下: duplicate symbol _iphoneType in: /Users/midmirror/Library/Developer/Xcode/DerivedData/PRTPrinter-eixyioynyswgruahtmzninftkbmm/Build/Intermediates/PRTPrinter.build/Debug-iphonesimulator/PRTPrinter.build/Objects-normal/x86_64/PRTScreenFit.o /User

iOS :undefined symbols for architecture x86_64错误解决方案

先让大家看一下,我报错的截图 我在网上查了一下,这个错误还是比较常见,原因就是少框架,少静态库了. 所以解决方案就是

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

Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译.原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1之后默认就带上arm64的参数了. 目前临时的解决办法是 1.把1.选中Targets—>Build Settings—>Architectures.把build active architectures only 改为 NO. 2. 把最下面的Valid Architectures中的arm64

duplicate symbols for architecture armv7错误

此种情况可能由以下2种方法引发: 1.有名字重复的文件. 2.在#import的时候将.h写成了.m. 排除以上2种情况一般就解决了~