web-dev-qa-db-ja.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)
43
Paresh

これは、誤って#import a .mファイルの代わりに.h

121
Adrian Bigland

通常、この種のエラーは、プロジェクトフォルダー内のクラスとxibが重複しているために発生します。たとえば、私のプロジェクトでは、いくつかのクラスファイルが重複しています(.h/.mファイル)。これらの重複するクラスは、target->Build phases->compile sourcesで確認できます。

余分なクラスを探して削除するだけです。問題は解決されます。

84
Vishal

ヘッダーファイル(複数の実装ファイルに含まれるヘッダーファイル)の静的変数で発生します。

53
Jeff Lawson

Xcodeの推奨警告フラグを使用したため、このエラーが発生していました。 GCC_NO_COMMON_BLOCKS = YESが問題の原因でした。これをNOに戻すと修正されました。

19
pulse4life

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

7
pom421

このエラーは、循環インポートがある場合にも発生する可能性があります。.._VC1.h_、_VC2.h_、および_VC3.h_があるとします

エラーの原因となる例:(すべて_.h_ファイルです)

  • VC2が_VC1_をインポートし、VC1が_VC2_をインポートする場合
  • VC1が_VC2_をインポートし、VC2が_VC3_をインポートし、VC3が_VC1_をインポートする場合

解決策:

  • _.m_の代わりに_.h_内にインポートする
  • _.h_がそのクラスを必要とする場合、_.h_をインポートする代わりに@class (nameOfClass);を使用します

使用するときは注意してください _#import_、必要なものだけをインポートしてください。

7
user2387149

私はこの問題に一度直面したことがあります。その理由は、実装本体で宣言されたメソッドと変数をあるクラスから別のクラスにコピーしたためです。したがって、これらのメソッドの名前を変更し、これらの変数をインターフェイス宣言領域に移動しました=>解決しました。

4
Envil

同じ問題が発生していましたが、ライブラリが異なります。修正は次のとおりです。

Target -> Build Phases -> Linked Binary With Libraries

含まれているライブラリが意味をなすことを確認してください。私の場合、私のプロジェクトにはlibPods * .a(依存関係mgmtにCocoaPodsを使用しています)がありましたが、ポッド共有ライブラリに含まれていたいくつかのライブラリもあり、それが重複を引き起こしていました。

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をインストールしました。FacebookとImageIOの2つのフレームワークに手動でドラッグしました。ほとんどの「重複シンボル」エラーはFacebookクラスでキャッチされました。フレームワークを削除してPodfileに追加しました。 Facebookが必要とするライブラリのエラーまたは重複である必要があります。

1
Anna Billstrom

Xcodeに重複したファイルがありました。物理的には、1つのmファイルと1つのhファイルがありました。ただし、プロジェクトでは2倍になり、コンパイルソースで重複が発生しました。重複した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を使用していますが、重複したシンボルエラーがいくつかありました。 2つの同様のプラグインをインストールしました。

  • cordovaプラグインメールコンポーザー
  • cordovaプラグインメール

「cordova plugin email」を削除して修正しました...

cordova plugin remove cordova-plugin-email

その後、私は走った...

cordova prepare
cordova build ios

これで、私のxCodeビルドは魅力的に実行されました!わーーーーーーーー

フレームワークを複数回追加したかどうかを確認し、複数回追加した場合はすべてのフレームワークを削除してから、もう一度ドラッグアンドドロップしてください。

これで問題が解決することを願っています。ハッピーコーディング。

0
Tejinder