Подтвердить что ты не робот

Дублирующие символы для архитектуры 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)
4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

Я получал эту ошибку, потому что я использовал предупреждающие флаги Xcode. Ошибка GCC_NO_COMMON_BLOCKS = YES. Устанавливая это, чтобы НЕТ, исправил это для меня.

Ответ 5

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

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

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

Решение:

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

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

Ответ 6

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

Ответ 7

Будьте осторожны, если вы используете 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

Ответ 8

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

Target -> Build Phases -> Linked Binary With Libraries

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

Ответ 9

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

Ответ 10

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

Просто удаление этой строки решило мою проблему: Образец набора изменений  git с одним добавленным файлом и нулевым удалением.

Ответ 11

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

Ответ 12

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

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

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

Ответ 13

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

Ответ 14

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

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

Ответ 15

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

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

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

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

cordova plugin remove cordova-plugin-email

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

cordova prepare
cordova build ios

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