xcode 的duplicate symbol xx问题

今天在写程序的时候遇到一个奇葩问题。

前N表,我的应用都可以编译并且运行。后一秒突然无法编译通过,通过查看报错信息,发现是duplicate symbol xx问题,问题出现在连接的时候。

why??

首先字面意思就是重复定义了。(但为什么前面可以编译通过不报错?乔布斯,你给我活过来,我保证不打死你!)

其实解决的办法很简单,全文查找这个 XX。你会发现连接错误提示的几个文件里,都定义了这个变量。(我局部变量(写在.m里的,这是局部变量吗?我是菜鸟,至少实例访问不到的)都能连接出错??)。然后你要做的是改掉其中一个名字。

问题解决了,忘记截图了,图就补贴了。

题外话:

1;不同类取变量名的时候需要注意,避免重名。以防万一,不同的类里的变量加上类名前缀吧。。。。

2:你怎么不报错,不同类的for循环的i重复定义了呢??

时间: 2024-11-25 06:42:46

xcode 的duplicate symbol xx问题的相关文章

【转】XCode: duplicate symbol 解决方案

遇到引用库重复定义的问题,需要解决. 项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_encode in: ...\libzbar.a(symbol.o) ...\TencentOpenAPI(base64.o) 意思就是在这两个库中都定义了_base64_encode,编译器认为你重复定义了.至于为什么编译器认为重复定义,个人认为编译器编译全局变量时会根据名字进行编译,会把相同名称的

xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误

一:场景 xcode 同时引入了 libA.a, libB.a 两个静态类库,如果 这两个静态类库之中,都打包了,相同的库,方法之类的, 且 xcode 的 other link flag 为 -all_load 时,就会出现 上述 静态类库,重复编译错误: 二:解决方法 1:把xcode 的 other link flag 里面的 -all_load 去掉:有 force-load 的也去掉: 2:第二个办法是 把 libA.a ,libB.a 里面的 冲突 内容 在任意一方的 libxx.a

转--xcode duplicate symbol问题

遇到引用库重复定义的问题,需要解决. 项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_encode in: ...\libzbar.a(symbol.o) ...\TencentOpenAPI(base64.o) 意思就是在这两个库中都定义了_base64_encode,编译器认为你重复定义了.至于为什么编译器认为重复定义,个人认为编译器编译全局变量时会根据名字进行编译,会把相同名称的

xcode上编译c语言程序报错:ld: x duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

在网上查了一下: duplicate symbol的大概意思是,编译器认为你重复定义了一些东西. linker command failed with exit code 1,则可能是项目引入了多个相同的文件. 结合本人开发中发现此类的问题,解决办法如下: 方法1:查看有问题的文件是否有重复引用.或头文件是否加载了.m 方法2:将有问题的文件删除,重新加载进去.然后:clean->build. 在开发中解决RegexKitlLite的类似问题办法: _rkl_NSExceptionForRege

ios 中 使用自制framework导致 Duplicate symbol 的问题解决方法

使用第三方静态库的时候有时候要求在编译选项linker 中 other linker flag中加入 -ObjC 但如果自制的framework库工程中加入了-ObjC,在Demo工程中如果也加入-ObjC选项时,可能导致 duplicate sysbol的问题 duplicate symbol _OBJC_CLASS_$_ZHAlixPayResult in: /Users/zizhu/Library/Developer/Xcode/DerivedData/NtUniSdkHaiMaDemo-

iOS duplicate symbol _main in:问题解决

今天手贱给自己挖了个坑,由于工程中一些文件是后台的小伙伴写的C/C++文件,所以我一次性全部导入了,但是编译时出现了duplicate symbol _main in: A.o和B.o的编译错误. 下面写一个最简单的Demo还原这个情景. 新建一个工程,再新建Hello.h和Hello.c文件,代码如下: Hello.h #ifndef __Main__Hello__ #define __Main__Hello__ #include <stdio.h> int main(); #endif /

Duplicate Symbol链接错误的原因总结和解决方法[转]

from:http://www.cocoachina.com/bbs/read.php?tid=177492 duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的.例如,我们有如下的最简单的两个类代码: //  ClassA.h#import <Foundation/Foundation.h>@interface ClassA : NSObject@end //  ClassA.m#impor

iOS开发 - OC - duplicate symbol _OBJC / undefind symbol 错误的相关处理

前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错. 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是在编译过程出错导致的,因此相对来说排查不易.在前几天,我在引用了两个SDK的过程中出现了这个问题,运用不同的手段最终解决了这个问题.今天本文就这个错误进行一个详细的分析以及如何处理做一个探讨,如果有错误的地方还请指出. 一.duplicate symbol /undefind  symbol出现的原

duplicate symbol _OBJC_CLASS 错误处理方法

错误: ld: duplicate symbol _OBJC_CLASS_$_************ in **************** 一种可能性是项目的不同group里有着相同名称的类 第二种很难找的: xcode的自动完成特性,在你导入头文件的时候,将".h"补成了".m"