web-dev-qa-db-ja.com

アーキテクチャi386の6つの重複シンボル

duplicate symbol _OBJC_METACLASS_$_SBJsonParser in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_CLASS_$_SBJsonParser in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonParser.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonParser.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.sortKeys in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_IVAR_$_SBJsonWriter.humanReadable in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_METACLASS_$_SBJsonWriter in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
duplicate symbol _OBJC_CLASS_$_SBJsonWriter in:
    /Users/Gaditek/Library/Developer/Xcode/DerivedData/DietBet-gyhoyhmdrobtqregldjyixtgmize/Build/Intermediates/DietBet.build/Debug-iphonesimulator/DietBet.build/Objects-normal/i386/SBJsonWriter.o
    /Users/Gaditek/Desktop/AliMaisamProjects/Dietbet/DietBet/libfacebook_ios_sdk.a(SBJsonWriter.o)
ld: 6 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

この問題を解決する方法を教えてください。

10
Ali Maisam

ご覧のとおり、リンカーはSBJsonWriterSBJsonParserの両方がlibfacebook_ios_sdk.aで定義されており、プロジェクト内の個々のファイルとして定義されていると文句を言います。

ターゲットから個々のファイルを削除する以外に、問題を実際に解決することはできません。

問題は、libfacebook_ios_sdk.aの開発者が、jsonフレームワークを使用することをお勧めすることです(ホストアプリで使用されるコードとの衝突を気にしないでください)。これは、iOS上のSDKでよくある問題です。

21
Nikolai Ruhe

問題を解決しました。手順に従ってください。

  1. Gotoアプリケーションのターゲット
  2. ソースをコンパイルする
  3. (-)を使用して重複ファイルを削除します。enter image description here
11
Piyush

この問題は、ヘッダーを含める際のタイプミスが原因である可能性があります。実装ファイル(.m)ではなくヘッダーファイル(.h)がインクルードされていることを確認してください。

これが私にとっての問題でした

10
joacar

他に何も機能しない場合に役立つことが多いのは、Xcodeの失敗ログに表示されるクラスの名前のテキストエディターとgrepを使用して.pbxcodeprojファイルを開くことです。重複する行が2つある可能性があります-そのうちの1つを削除してください。

7
Trevor Assaf

プロジェクトにSBJsonParser.h/.mを2回追加しておく必要があります。

2
Kunal

サードパーティのAPI /ライブラリが2回含まれているように、.h/.mファイルが2回含まれている可能性があります。または、プロジェクトですでに使用可能なファイルとまったく同じ名前の新しいファイルを作成したようです。プロジェクトフォルダに重複するファイルがあるかどうかを確認してください。

0
rohan-patel

次のこともできます。

  1. 競合する.hファイルpodsをコピーします。
  2. これらの競合podspodfileから削除します。
  3. これらの.hファイルをプロジェクトにコピーします。
  4. コピーした#importファイルの</.h>".h"の名前を.hに変更します。
  5. pod installとbulidを作成します。

トリックは、.hファイルがインポートされたため、コードにエラーがないことですが、.oファイルは正しくリンクされています。

0
Ivan Vavilov

.hファイルのいずれかを2回インポートすると、それが発生します。

たとえば、.... ViewController.hファイルと.... ViewController.mファイルの両方の.hファイルをインポートすると発生します。

0
zapoo

何よりも問題が解決しない場合は、2つの異なるファイルで定数を宣言しているかどうかを確認してください(つまり、2つの同じ(.h&.m)ファイルがあるかどうかを確認してください。プロジェクトに重複ファイルがないようにしてください。