重复符号架构armv7
尝试在我现有的应用程序中使用Layar SDK时出现以下错误。 我该如何解决这个问题?
Ld /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos/hub.app/hub normal armv7 cd /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub setenv IPHONEOS_DEPLOYMENT_TARGET 5.0 setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/ZBarSDK -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/Infosound/Lib -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/CrittercismSDK -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/UserVoiceSDK-2.0.4 -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/Libraries -F/Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos -F/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub -filelist /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Intermediates/hub.build/Debug-iphoneos/hub.build/Objects-normal/armv7/hub.LinkFileList -dead_strip -ObjC -all_load -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=5.0 -lMPOAuthMobile -lsbjson-ios -framework LayarSDK -framework Social -framework AddressBook -framework AddressBookUI -framework UIKit -framework QuartzCore -framework Twitter -framework SystemConfiguration -framework Security -framework OpenAL -framework OpenGLES -framework MessageUI -framework MediaPlayer -framework Foundation -framework CoreGraphics -lc++ -framework CoreTelephony -framework CoreVideo -framework CoreMotion -framework CoreMedia -framework CoreLocation -framework CoreData -framework CoreAudio -framework CFNetwork -framework AVFoundation -framework AudioToolbox -lxml2 -liconv -lz -framework MobileCoreServices -lzbar -linfosound -lCrittercism_v3_4_6 -lUserVoice -o /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos/hub.app/hub duplicate symbol _jpeg_free_large in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_free_small in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_get_large in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_get_small in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_mem_available in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_mem_init in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_mem_term in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_open_backing_store in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o) duplicate symbol _jpeg_free_large in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_free_small in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_get_large in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_get_small in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_mem_available in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_mem_init in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_mem_term in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _jpeg_open_backing_store in: /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o) /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o) duplicate symbol _main in: /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Intermediates/hub.build/Debug-iphoneos/hub.build/Objects-normal/armv7/main.o /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jpegtran.o) ld: 17 duplicate symbols for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这可能会发生,如果你不小心#import
.m
文件,而不是.h
!
一般来说,这种错误是由于项目文件夹中重复的类和xibs。 例如,在我的项目中,我有一些类文件重复(.h / .m文件)。 您可以在目标 – target->Build phases->compile sources
下看到这些重复的类。
只要看看,并删除额外的类。 问题将被解决。
在头文件(包含在多个实现文件中的头文件)中使用静态variables。
我得到这个错误,因为我使用了Xcode推荐的警告标志。 GCC_NO_COMMON_BLOCKS = YES导致了问题。 把这个设置回NO是为我修好的。
如果你有循环导入,也可能导致这个错误….让我们假设你有VC1.h
, VC2.h
和VC3.h
会导致错误的例子:(都是.h
文件)
- 如果VC2input
VC1
,VC1inputVC2
- 如果VC1input
VC2
和VC2inputVC3
和VC3inputVC1
解:
- 导入
.m
而不是.h
- 如果
.h
需要该类使用@class (nameOfClass);
而不是导入.h
使用 #import
时要小心 ,只导入你需要的东西。
我曾经遇到过这个问题。 原因是我将实现主体中声明的一些方法和variables从一个类复制到另一个类。 所以重命名这些方法,并将这些variables移动到接口声明区域=>解决。
如果你使用Cordova iOS 4.5.0
,请小心,这种错误可能会发生
duplicate symbol _OBJC_METACLASS_$_CDVLogger in: /Users/toto/Library/Developer/Xcode/DerivedData/imp-hkzujazvkracgugyxunzwnzpeiqx/Build/Intermediates/imp.build/Debug-iphoneos/imp.build/Objects-normal/armv7/CDVLogger.o /Users/toto/Library/Developer/Xcode/DerivedData/imp-hkzujazvkracgugyxunzwnzpeiqx/Build/Products/Debug-iphoneos/libCordova.a(CDVLogger.o) ld: 2 duplicate symbols for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这可能是由于cordova-plugin-console
,这在Cordova iOS 4.5.0
不再有用(并且也破坏了构build!)。
要解决这个问题
cordova plugin remove cordova-plugin-console
请参阅参考资料: https : //cordova.apache.org/announcements/2017/09/08/ios-release.html
我看到了同样的问题,但有不同的库。 解决方法如下:
Target -> Build Phases -> Linked Binary With Libraries
确保包含的库是有意义的。 在我的情况下,我的项目有libPods * .a(我正在使用CocoaPods进行依赖性pipe理),但也有一些包含在我的pod共享库中的库,这导致了重复。
我只是解决了这个错误。 我有CocoaPods安装了几个框架(AWS,SDWebImage,AFNetworking),我手动拖动了两个框架,Facebook和ImageIO,我的大部分“重复符号”错误都在Facebook类上被捕获,我删除了框架并将其添加到Podfile。一定是在Facebook所需的图书馆中出现错误或重复。
我的问题是…奇怪。 我不确定它是如何发生的,但是在某种程度上,Xcode决定再一次在.pbxproj
文件中包含一些古老的.m
文件。 我发现它的唯一方法是通过比较我在git中的更改,查看构build首次失败的代码版本。
简单地删除这条线解决了我的问题:
我在Xcode中有重复的文件。 身体上有一个m文件和一个h文件。 但是在项目中它翻了一番,导致编译源重复。 删除重复的m和h文件后问题解决了。
因为iPhone模拟器得到了重复的.h&.m引用。 我为这个bug苦苦挣扎了好几个小时。
我的解决scheme很简单。 我将项目复制到笔驱动器并从计算机内存中删除。
打开一个新项目,复制故事板并添加.h&.m文件。 通过在storayboard视图中再次select类来修复一些错误
我也有重复的符号。 我只是重命名了过程(app – > app1,app2)和关联的字段app.XXX – > app1.XXX。 它的工作!
请参阅:(在.m文件中)
AppDelegate* app1; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization app1 = (AppDelegate *)[[UIApplication sharedApplication] delegate]; } return self; } (...) - (int) getLimit { if (app1.product2buyed) return MAXID; else if (app1.product1buyed) return 70; else return 10;
请检查是否多次添加了任何框架,如果多次添加,则删除所有框架,然后再次拖放。
希望这将解决您的问题。 快乐的编码。