it-roy-ru.com

дубликаты символов для архитектуры 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)
42
Paresh

Это может произойти, если вы случайно #import файл .m вместо .h!

121
Adrian Bigland

Как правило, такого рода ошибки возникают из-за дублирования классов и XIB в папке вашего проекта. Например, в моем проекте были дублированы некоторые файлы классов (файлы .h/.m). Вы можете увидеть эти дубликаты классов в target->Build phases->compile sources.

Просто посмотрите и удалите лишние классы. Проблема будет решена.

81
Vishal

Происходит со статическими переменными в заголовочном файле (заголовочный файл включен в более чем один файл реализаций).

51
Jeff Lawson

Я получал эту ошибку, потому что я использовал рекомендованные флаги предупреждения XCode. GCC_NO_COMMON_BLOCKS = ДА была причиной проблемы. Установка этого значения на НЕТ исправила это для меня. 

17
pulse4life

Эта ошибка также может быть вызвана циклическим импортом .... допустим, у вас есть VC1.h, VC2.h и VC3.h

примеры, которые приведут к ошибке: (все файлы .h)

  • Если VC2 импортирует VC1, а VC1 импортирует VC2
  • Если VC1 импортирует VC2, а VC2 импортирует VC3, а VC3 импортирует VC1

решение:

  • импортировать внутри .m вместо .h
  • если .h нужен этот класс, используйте @class (nameOfClass); вместо импорта .h

Будьте осторожны при использовании #import, импортируйте только то, что вам нужно.  

7
user2387149

Будьте осторожны, если вы используете 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 (и также нарушает сборку!).

Починить это

cordova plugin remove cordova-plugin-console

См. Ссылку: https://cordova.Apache.org/announcements/2017/09/08/ios-release.html

6
pom421

Я сталкивался с этой проблемой однажды. Причина в том, что я скопировал некоторые методы и переменные, объявленные в теле реализации, из одного класса в другой. Поэтому переименуйте эти методы и переместите их в область объявления интерфейса => решено.

4
Envil

Я видел ту же проблему, но с разными библиотеками. Исправление было следующим:

Target -> Build Phases -> Linked Binary With Libraries

Удостоверьтесь, что включенные библиотеки имеют смысл. В моем случае в моем проекте были libPods * .a (я использую CocoaPods для зависимости mgmt), а также несколько библиотек, которые были включены в мои общие библиотеки pod, и это вызывало дублирование.

2
josephmisiti

Моя проблема была ... странной. Я не уверен, как это произошло, но в какой-то момент XCode решил включить древний файл .m еще раз в свой файл .pbxproj. Единственный способ, которым я нашел это, было сравнение моих изменений в git, просмотр версии кода, где сборка сначала не удалась.

Простое удаление этой строки решило мою проблему:  A sample of a git changeset, with one file added and zero removed.

1
Ben Leggiero

Я только исправил эту ошибку. У меня были CocoaPods, устанавливающие несколько фреймворков (AWS, SDWebImage, AFNetworking. Я вручную перетащил в 2 фреймворка, Facebook и ImageIO. Большинство моих ошибок «дублированного символа» было обнаружено в классах Facebook. Я удалил фреймворк и добавил его в Podfile. Возможно, произошла ошибка или дублирование в библиотеках, требуемых Facebook.

1
Anna Billstrom

У меня были дубликаты файлов в моем Xcode. Физически был один m-файл и один h-файл. Но в проекте это было удвоено, вызывая дубликаты в источниках компиляции .... После удаления дубликатов m и h файл проблема была решена.

0
Mansurov Ruslan

Это потому, что симулятор iPhone получил дубликаты ссылок .h & .m. Я часами боролся за эту ошибку.

Мое решение было простым. Я скопировал проект на свой флеш-накопитель и удалил из памяти компьютера.

Открыл новый проект, скопировал раскадровку и добавил файлы .h & .m. Некоторые ошибки исправлены путем повторного выбора классов в представлении Storayboard.

0
Alvin G

У меня также были дубликаты символов. Я просто переименовал процедуру (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;
0
Tanos

ВЫ МОЖЕТЕ УСТАНОВИТЬ ПОДОБНЫЕ ПЛАГИНЫ. 

Я использую Cordova, а также имел несколько повторяющихся ошибок символов. Я установил два похожих плагина:

  • кордова плагин электронной почты композитор
  • кордова плагин электронная почта

Исправлено, удалив «email-плагин cordova», используя ...

cordova plugin remove cordova-plugin-email

После этого я побежал ...

cordova prepare
cordova build ios

Теперь моя сборка xCode работала как шарм! Woooo Hooo!

0
Sandi Laufenberg-Deku

Проверьте, добавили ли вы какой-либо фреймворк более одного раза, удалите все фреймворки, если они были добавлены несколько раз, а затем снова перетащите.

Надеюсь, что это решит вашу проблему. Счастливого кодирования.

0
Tejinder