Xcode 4.3でpdfキットを使用してpdfを読み込むアプリケーションを実行しようとしていますが、次のエラーが表示されます
ld: duplicate symbol _OBJC_METACLASS_$_OverlayManager in /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-D0866CFD31A05E68.o and /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-B31AE7412100AF6D.o for architecture i386
Command /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
助けてください??
[プロジェクトの設定]> [ターゲット]でプロジェクトを選択し、[ビルドフェーズ]> [ソースのコンパイル]および[バンドルリソースのコピー]を開きます。赤色でリストされているファイルがあるかどうかを確認します。その場合は、削除してください。その後、クリーニングして実行します。
私のために働いた。
きれいにしてください。 product > clean
。ターミナルのパージと再起動は機能しませんでしたが、クリーニングは機能しました。
私はこれと同じエラーがあり、実際に動作するStackOverflowについての答えを誰も持っていないようです。問題は、チームリポジトリにあるプロジェクトをコピーしようとしたときでした。無視ファイルで、*.pch
の拡張子を持つすべてのファイルがリポジトリのコミットから無視されたことが判明しました。これは、レポジトリからプロジェクトをプルしようとしたときに、.pch
ファイルが見つからなかったため、このエラーがスローされたことを意味します。
幸いなことに、私はプロジェクトのコピーをまだ持っていて、.pch
ファイルをコピーするだけで済み、うまくコンパイルできました。
お役に立てれば?
ターゲット設定、概要タブに移動し、「展開ターゲット」を見つけて増やします。
私もこの問題に直面しています。そして、常識を使う代わりにSOでヘルプを探し、エラーメッセージを確認しました。
エラーメッセージの最後の部分はあなたと同じでした。
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 11
しかし、私は上記のいくつかの行を見つけました:
In file included from /Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/RealEstateFinder-Prefix.pch:26:
/Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/Config/Config.h:174:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
http://www.myserver.com/apps/mobile/rest.php?id=12
Config.hファイルを指します。
ハッピーコーディング!
通常、この問題は、Ex用に異なるSwiftバージョンが組み込まれたXCodeのバージョンが3つ以上インストールされている場合に発生します。 Swift 1.2およびSwift 2.0を実行しているXCode 6.4およびXCode 7.3がインストールされています。間違って、Exのicorrectバージョンでコードをコンパイルしようとします。プロジェクトはSwift 1.2にあり、xcode 7.3でコンパイルしようとします。この場合、ドライブデータにはSwiftバージョンの情報が保存されますが、正しいXCodeでコードをコンパイルしようとするとエラーが発生します。これを解決するには
実際に、実際のOverlayManagerクラス自体の中に.hファイルの代わりに.mファイルOverlayManagerをインクルードしました!基本的に、コンパイラーは.mファイルをコンパイルすることを既に知っていますが、#importを実行すると、コンパイラーは同じソースファイルにインラインでインクルードしようとするため、重複するシンボルが生成されます。しかし、実際のクラスの.mファイルの#mをインポートしているように、あなたのケースはユニークです! OverlayManagerクラスを再帰的にコンパイルしています。
これを試してください-Xcodeの左側(リストの最上部)にあるファイル/フォルダーのリストでプロジェクトの名前をクリックします。右側のウィンドウの左側にある「ターゲット」セクションを見てください。おそらく、2つがリストされ、2つ目は「テスト」項目です。そのアイテムを右クリックして、「削除」を選択します。その後、プロジェクトを再度実行してください。
私にとって、このエラーはリポジトリからプロジェクトを複製した後に表示されます。誰かがプロジェクト名から空白を削除し(「The Project」から「TheProject」に名前を変更)、一部のBuild Settings
エラーが無効なパスになりました。
時々、エラーログ全体を読むことは悪い考えではありません。
同じことが私に起こり、私は最後に「
#import "CPDConstants.h
代わりに
#import "CPDConstants.h"
~/Library/Developer/Xcode/DerivedData
を削除すると助けてくれました。
参照: リンク
私の問題は、Build Phases-> Compile Sourcesで、ファイルにコンパイラフラグを追加しましたが、スペルを間違えていたことです。次のように想定されていました。
-fno-obj-arc
このファイルがARCを使用していないことを示すため。
私の場合、私はそれを次のように修正します:
Build Phasesに移動してCompile Sourcesファイルをチェックし、duplicateファイルがあるかどうかを確認し、1つだけを保持します。
Xcode 8
@Spoekの answer は正しい、
ただし、赤い色でファイルが見つからない場合は、不透明度の低いものを見つけてください。
この画像をご覧ください。
1つ目はそこにありますが、2つ目はそこにメモがありますので、削除してください。
不足しているファイル(Xcode-> target-> Build Phases-> compiled sourcesの赤色のファイル)をターゲットフォルダーに追加すると、問題が解決しました。
ここで考慮すべきことは、*。pchファイルです。外部ライブラリからインクルードを行う場合は、#ifdef OBJCの後で#endifの前にインクルードを行う必要があります。この条件の外側でインクルードしようとすると、これがコンパイラエラーの原因になる可能性があります。
私もこのエラーがありました。しかし、私の場合、私はここにいると確信しています。アプリがiPhoneシミュレータでクラッシュした後に削除キーを押したときに誤ってmain.mを削除していました。
クラッシュ後、Xcodeはmain.mファイルを表示し、deleteを押すと、プロジェクトのmain.mファイルを誤って削除してしまいました。詳細のコードではなくファイル名が強調表示されていると簡単に実行できるためです。見る。
Main.mは通常、プロジェクトファイルマネージャー内のサポートファイルという名前のグループまたはフォルダーにあります。次回のビルドと実行に失敗するまでこれが発生することに気づかなかったので、エラーメッセージをより詳しく読み直さなければならず、main.mが欠落していると表示されました。
ご意見をお寄せいただきありがとうございます。ただし、私のポジションに誰かがいる場合に備えて、不足しているファイルを示す赤色のファイル名をチェックし、バックアップがある場合はバックアップから復元します。
誰かに役立つかもしれません:プロジェクトからいくつかのファイルを削除した後、同じエラーが発生しました。 gitリポジトリで削除をコミットした後、このエラーはなくなりました...
私の場合、ターゲットの[ビルド設定]> [その他のSwift]フラグ内の重複したSwift Flag
エントリでした。 2つの-Xfrontend
エントリがありました。
Gitを使用しているチームでこれが発生した場合。チームメンバーの1人が外部ソースからクラスを追加しましたが、それをリポジトリディレクトリにコピーしませんでした。ローカルバージョンは正常にコンパイルされましたが、継続的統合はこのエラーで失敗しました。
ファイルを再インポートし、バージョン管理下のディレクトリに追加すると修正されました。