アーキテクチャARM64のための重複シンボル -- ios フィールド と objective-c フィールド と xcode フィールド と linker-errors フィールド 関連 問題

Duplicate Symbols for Architecture arm64












109
vote

問題

日本語

Xcodeプロジェクトを実行しているときは、シンボルが重複していることを示すエラーで失敗します。私はこれらの重複を見つけるが運を持っていなかったところをオンラインで見ました:

画像の説明を入力します。

どんなアイデアもこれを修正する方法?

英語

When I try running my Xcode Project it fails with an error stating that I have duplicate symbols. I looked online where the find these duplicates but have had no luck:

enter image description here

Any ideas how to fix this?

</div
           
       
       

回答リスト

67
 
vote
vote
ベストアンサー
 

エラーから、FacebookSDK.FrameworkにはすでにBolts.Frameworkクラスが含まれていると表示されます。プロジェクトから追加のBolts.Frameworkを削除してみてください。

 

From the errors, it would appear that the FacebookSDK.framework already includes the Bolts.framework classes. Try removing the additional Bolts.framework from the project.

</div
 
 
   
   
72
 
vote

私にとっては、「共通ブロックなし」コンパイラ設定をNOに切り替えるのに役立ちました。 それは意味があるように思われるようです、この設定はここで説明されています: gcc_no_common_blocksは何ですか?

 

For me it helped to switch the "No Common Blocks" compiler setting to NO: It pretty much seems to make sense, the setting is explained here: What is GCC_NO_COMMON_BLOCKS used for?

</div
 
 
       
       
50
 
vote

Xcode 8を使用すると、プロジェクトの「プロジェクトの推奨設定への更新」オプションが「共通ブロックなし」をオンにしました。

オフにしてすべてを固定してください。

 

Using Xcode 8, "Update project to recommended settings" option turned ON 'No Common Blocks' for my project.

Turning it back to OFF fixed everything up.

</div
 
 
   
   
35
 
vote

PODをダウングレードしながらPODをめちゃくちゃにし、PODを削除し、それらをもう一度インストールすることで、アーキテクチャARM64 の重複シンボルで問題を解決できました。

<事前> <コード> pod deintegrate pod install
 

I've messed up my pods while downgrading a pod and I've managed to resolve the issue with duplicate symbols for architecture arm64 by removing the pods and installing them again with:

pod deintegrate pod install 
</div
 
 
       
       
22
 
vote

私は誤って.mではなく.mとしてファイルをインポートしました

 

For me it was that i imported a file as a .m not a .h by mistake

</div
 
 
   
   
13
 
vote

もう1つの解決策は次のとおりです。

プロジェクト - &gtを選択します。 ターゲット - &gt。 ビルドフェーズ - &gt。 コンパイルソース - &gt;探す 3番目の最後のエラー行に記載されているファイルの場合 ケース bfapplinkreturntorefererview.o

その後、検索結果に1または2個のファイルが表示されます。

を削除し、そして再びコンパイル。ファイルが1つしかなく、ビルドの競合が1つしかないため、今再コンパイルする必要があります。

それが機能していない場合は、おそらくそれにエラーがあり、それらのすべてを取り除いて再コンパイルする必要があります。 それは再び働くべきです。

 

Another Solution is to:

Select Project -> Target -> Build phase -> Compile source -> search for the file which is mentioned in the 3rd last error line (In your case BFAppLinkReturnToRefererView.o).

Then you will see either 1 or 2 files in search result.

Remove one of them and compile again. It should recompile now because there is only one file left and no more conflicts for build.

If that doesnt work the file probably has errors in it and you should remove all of them and then recompile. It should work again.

</div
 
 
   
   
10
 
vote

Xcode 8へのアップグレード時に、推奨設定にアップグレードするメッセージが表示されます。私は受け入れられ、すべてが更新されました。 私はコンパイル時の問題を取得し始めました:

xxxxのためのシンボルの重複 XXXXのための重複シンボル xxxx

のための複製シンボル

合計143のエラー。 ターゲット - &gtに行きました。設定の構築 - &gt;一般的なブロックはありません - &gt。いいえに設定してください。 これは問題を解決しました。この問題は、統合プロジェクトに共通のコードブロックを持っていて、それをコンパイルすることができませんでした。説明は

 

On upgrading to Xcode 8, I got a message to upgrade to recommended settings. I accepted and everything was updated. I started getting compile time issue :

Duplicate symbol for XXXX Duplicate symbol for XXXX Duplicate symbol for XXXX

A total of 143 errors. Went to Target->Build settings -> No Common Blocks -> Set it to NO. This resolved the issue. The issue was that the integrated projects had code blocks in common and hence was not able to compile it. Explanation can be found here.

</div
 
 
10
 
vote

下のパッチは私のために仕事をしています.. :)

<事前> <コード> Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No Step 2: Go to TARGETS -> Build Settings -> enable testability -> No

ノーに戻す問題を解決しました!

 

Below Patch work for me..:)

Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No  Step 2: Go to TARGETS -> Build Settings -> enable testability -> No 

Setting it back to NO solved the problem!

</div
 
 
 
 
9
 
vote

このエラーは、リンカがOBJファイルをリンクしようとしているときに発生します。このエラーについて考えることができる理由はいくつかあります:

  1. 複製された関数/クラスはプロジェクト内の2つの異なる場所/ファイルで定義され、それらのうちの1つだけがビルドコマンドのバリエーションのためにコンパイルされることになっていました。しかし、どういうわけかこれらのファイルはあなたのプロジェクトでコンパイルされました。したがって、SRCファイルをコンパイルする必要があるファイルのリストにSRCファイルを追加し、特定のビルドコマンドに必要なファイルを削除する必要がある依存関係またはその他の依存関係を確認する必要があります。

  2. 複製された関数/クラスは、プロジェクト内の2つの異なる場所/ファイルで偶然に定義されています。間違った定義を削除します。

  3. あなたのobjディレクトリを掃除する前に、この競合を引き起こす可能性がある前のビルドから、そこにある古いOBJファイルがある可能性があります。

  4. P.Sは専門家ではありませんが、これが私がそれに直面したときにこの問題を解決する方法です。 :)

 

This error happens when Linker is trying to link the obj files. Few reasons that i could think of for this error are:

  1. The duplicated Function/Class is defined at two different places/files in the project and only one of them was supposed to compile for any variation of build command. But somehow both those files got compiled in your project. So you need to check your if-else conditions or other dependencies which adds src files to the list of files needed to be compiled and remove the un-needed file for your particular build command.

  2. The duplicated Function/Class is defined accidentally at two different places/files in the project. Remove the wrong definition.

  3. Clean your OBJ directory before you build again, there could be some old obj files in there from your previous builds which might be causing this conflict.

P.S i am no expert, but this is how i solved this problem when i faced it. :)

</div
 
 
9
 
vote

Xcode 7または8に移動して本当に古いプロジェクトを開いている場合は、この問題が発生しました。

SomeConstFile.h <事前> <コード> NSString * const kAConstant; SomeConstFile.m <事前> <コード> NSString *const kAConstant = @"a constant";

以前のバージョンのコンパイラは、ヘッダファイルの定義がexternであり、SOMECONSTFILE.Hを含めると想定していました。

これを明示的にextern:

として宣言する必要があります。 SomeConstFile.h <事前> <コード> extern NSString * const kAConstant;
 

If you are moving to Xcode 7 or 8 and are opening a really old project, I've encountered this problem:

in SomeConstFile.h

NSString * const kAConstant; 

in SomeConstFile.m

NSString *const kAConstant = @"a constant"; 

Earlier versions of the compiler assumed that the definition in the header file was extern and so including SomeConstFile.h all over the place was fine.

Now you need to explicitly declare these consts as extern:

in SomeConstFile.h

extern NSString * const kAConstant; 
</div
 
 
     
     
2
 
vote

VuforiaやGoogleAryticsのようなFBやライブラリのようなSDKを使用するときは、SDKを使用する場合は、サンプルプロジェクトを追加していると、既にフレームワークを含めている問題が発生しているため、すでに追加されているシンボルを繰り返してください。サンプル

 

Well, some times when using SDK like FB or Libraries like Vuforia or GoogleAnalytics , adding sample projects may cause the problem that they're already including Frameworks and like so ,so you must make sure not repeating symbols you add manually while they're already included in samples

</div
 
 
2
 
vote

私にとっては、この問題の創造スタイルでした。これは、このiOS8まで大丈夫になった。

<事前> <コード> int const kView_LayoutCount = 3;

.hファイルの中に。共通ブロックがNOに設定された後、636のリンカファイルが生成された6行(はいの場合は14k +)。値宣言の除去後。hを除去した後、行を.hし、コンパイルが進んでいました。

これが他の人たちに役立つことを願っています!

 

For me, the issue was the style of creation of const, that worked fine until this iOS8.. i had a few lines as:

int const kView_LayoutCount = 3; 

in my .h file. Six lines like resulted in 636 linker files once common blocks was set to NO. (14k+ if YES). Moved the lines to .m after stripping .h of the value declaration and compilation was good to go.

Hope this helps others!

</div
 
 
2
 
vote

私の場合の理由は愚かすぎた:

私はマクロが定義された定数.hファイルがありました。 私はそこにNSSTRINGをすることを考えました。そしてこれをしました:

<事前> <コード> NSString const *kGreenColor = @"#00C34E";

これはアーキテクチャーARM64のための重複シンボルの問題を引き起こしました そしてリンカコマンドは終了コード1で失敗しました。 const nsstring回線を削除しました。

 

In my case reason was too stupid :

I had a Constant.h file where I had macros defined. I thought of doing NSString there. and did this :

NSString const *kGreenColor = @"#00C34E"; 

this caused the problem of Duplicate Symbols for Architecture arm64 and Linker command failed with exit code 1. Removing const NSString line worked for me.

</div
 
 
2
 
vote

インクルードファイルをチェックしてください。「filename.h」の代わりに誤って "FileName.m"を誤ってImportedしたので、この問題を抱えていました。 "autename.h"の代わりに "m"は "m"ではありません。

 

check your include file, I had this issue because I accidentally #imported "filename.m" instead of "filename.h", autocorrect (tab) put an "m" not "h".

</div
 
 
 
 
1
 
vote

エラーから、複数の時間指定されたクラスが表示され、そのクラスが機能していることが表示されます。

AppDelegate.hと.mファイルの作成複数の時間を作成します。そのため、このエラーは発生します。そのクラスが私にとってうまく機能しているそのクラスを見つけて削除されます。

 

From the errors, it would appear any Classes appear multiple time.Find and removed that Classes it will working.

Am creating AppDelegate.h and .m file creating multiple time. So this error will occur.Finally find and removed that classes it's working fine for me.

</div
 
 
1
 
vote

この問題を解決するためにフェーズの構築と重複ファイルについて検索する (FacebookSDK、Unityads)とDELETE(拡張ファイル..O)は再びビルドされます。

 

to solve this problem go to Build phases and search about duplicate file like (facebookSDK , unityads ) and delete (extension file.o) then build again .

</div
 
 
1
 
vote

nsmanagedObjectサブクラスの追加、重複リンクを追加するとき

 

See Duplicate symbol error when adding NSManagedObject subclass, duplicate link

</div
 
 
1
 
vote

PLZの変更設定

ステップ1:ターゲット - &gtに進みます。設定を構築 - &gt;一般的なブロックはありません - &gt。いいえ

ステップ2:ターゲット - &gtに進みます。設定を構築 - &gt;テストビリティを有効にします - &gt。いいえ

 

Plz Change setting.

Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No

Step 2: Go to TARGETS -> Build Settings -> enable testability -> No

</div
 
 
0
 
vote

ViewController_Aで sampleMethod というメソッドを作成し、ViewController_Bでも同じメソッドを作成しました。このエラーを生じさせてから、Method NameをViewController_Bに変更しました。<コード> secondSampleMethod < /コード>。エラーを修正しました。

多くの場所で同じコードを複製しないように、コードを縮小しないようにするための良い機能のようです。

私は、共通ブロックがYesからNoの変更を変更しようとしました、それからテストビリティをイエスからいいえに有効にしました。ビルドフェーズでも重複ファイルをチェックしましたが、重複したファイルはありません。

 

For me, I created a method called sampleMethod in ViewController_A and created the same method in ViewController_B too, It caused me this error, then i changed the method name in ViewController_B to secondSampleMethod. It fixed the error.

Seems like a Good feature to reduce the code and not to duplicate the same code in many places.

I tried changing the No Common blocks from Yes to No then enabling testability from Yes to No. It didn't worked. I Checked duplicate files also in build phases, but there is no duplicate files.

</div
 
 
0
 
vote

メソッドの外側の私の.mで変数を怠惰に定義していたので、私はメソッドの外部で同じ名前の別の変数を定義していました。これはグローバル変数名の重複の問題を引き起こしていました。

 

I got this issue because I was lazily defining a variable in my .m outside of a method, then in another .m file I was defining another variable with the same name outside a method. This was causing a global variable name duplicate issue.

</div
 
 
0
 
vote

私の問題は私が手動でフレームワークを含んでいましたが、私がそうしたことを知らなかったCocoapodsで同じフレームワークを含めました。もう一方を取り除いたら、問題は解決しました

 

The problem for me was I had manually included a framework but then also included that same framework in CocoaPods not knowing I did so. Once I removed one or the other, the problem went away

</div
 
 
0
 
vote

このエラーを解決することができましたが、これがアーキテクチャARM64のための158の複製シンボルのためのシンボルは、これがあなたが行っているものであるならば、それはあなたがファイルをコンパイルしようとしていることを意味します。 C ++コードまたはファイルへの参照を持つフレームワークまたは静的ライブラリをインポートまたは継承しています。これを処理する簡単な方法は、.mファイルの拡張子を.mmに変更することです。これが、SWIFTではわかりません。

ビルド設定では - 「その他のリンカフラグ」を-LC ++

に更新できます。
 

I was able to resolve this error which said "158 duplicate symbols for architecture armv7, 158 duplicate symbols for architecture arm64" --- If this is what you are getting too, then it means you are trying to compile a file which is importing or inheriting a framework or static library having references to C++ code or files. An easy way to handle this would be to change the extension of your .m file to .mm. This is how it gets handled if you are using Objective C, not sure on Swift though.

Also in your build settings - you can update the "other linker flags" to -lc++

</div
 
 
0
 
vote

誰かがこれをフラッタに取り組んで実験している場合は、脱状態、ポッドのinit。

私が解決した方法フラッタークリーン、フラッターラン-d [iOSデバイス]

誰かを助けることができます。

 

If someone is experimenting this working on Flutter, don't try to pod deintegrate, pod init.

How I solved is running flutter clean, flutter run -d [iOS Device]

Hope can help somebody.

</div
 
 
0
 
vote

事故について同じ名前の2つのファイルがあるとき(大プロジェクト、おっと!)

皮肉なことに彼らは実際に同じファイルであった、私はすでにプレースホルダーとして1週間早く1つを創造したことを忘れていました、そしてそれを再び笑!

 

I got this issue when I had two files that had the same name on accident (large project, oops!)

Ironically they were actually the same file, I just had forgotten that I had already created one as a placeholder weeks earlier and gave it the same name again, haha!

</div
 
 

関連する質問

1  Darn Linker Errors Xcode 4.3 - それらを解決するためのアルゴリズム?  ( Darn linker errors xcode 4 3 algorithm to solve them ) 
アーキテクチャの未定義シンボルI386: "_objc_class _ $ _ appdelegate_shared"、から参照されます。 _objc_class _ $ _ appdelegate_ipad.o.o.o. ...

1  C ++テンプレートクラスの問題  ( C template class problem ) 
こんにちはみんな私はちょうどC ++テンプレートを練習したいのですが、私はリンカエラーを取得します。誰かが私を助けてくれることができますか? これが私のコードです: <事前> <コード> // File: MyClass.h #ifndef _MYCLASS_...

0  QuickLook-Template generatePreviewForURL.mの名前を変更すると、リンカエラーが発生します  ( Renaming quicklook template generatepreviewforurl m causes linker error ) 
私はXcode(4.2.1、Apple Clangバージョン3.0)を使用しています。これは問題になる可能性がありますが、これは関係なく機能するはずです: 新しいQuickLookプラグインプロジェクト( "file&gt;新規プロジェクト"、その後 "システ...

0  Boost :: ASIOを使用しようとするとエラーがリンクされます  ( Linking error when trying to use boostasio ) 
私は私が狂っていると思います、io_Serviceとの仕事を理解するための簡単なプロジェクトをコンパイルしようとしていると思います。 <事前> <コード> #include <iostream> #include <boost/asio.hpp> #inclu...

2  VC ++ 2015の「ローカル定義シンボルインポートされた」エラーの解決  ( Solving locally defined symbol imported errors in vc 2015 ) 
マキシムのOneWire Public Domain APIとWinUSBを使用する小さなコマンドラインプログラムを持っています。 Win7 / VS2013を使用して私のラップトップに絶対に素晴らしい構築されています。今、私は新しいデスクトップPC上でWin...

20  エラーが発生したのは、「未定義の参照(ある関数)」を参照しますか? [複製]  ( What causes the error undefined reference to some function ) 
この質問はすでにここで回答を持っています 未定義の参照/未解決の外部シンボルエラーと修正方法は? (34回答) ...

5  LNK2005&LNK1169を無視する方法?  ( How to ignore lnk2005 lnk1169 ) 
そのため、外部のライブラリを使用し、LNK2005なしでコンパイルするためのVisual Studio 2010プロジェクトがあり、リンカ設定のライブラリーの順序で移動しなければなりませんでした。 リリースモードでは、リリースモードでコンパイルするようになった...

0  C ++静的変数と未解決の外部エラー  ( C static variable and unresolved externals error ) 
私はクラスの静的変数に関するいくつかの明確化を得ることを望んでいました。 次のように: 私はまったく異なる関数、alphaとbetaを実行する2つの異なるクラスを持っています。アルファ内では、Beta型の静的変数を宣言して、このように見えます。 <事前> <...

1580  未定義の参照/未解決の外部シンボルエラーとは何ですか?どうすればいいですか?  ( What is an undefined reference unresolved external symbol error and how do i fix ) 
未定義の参照/未解決の外部シンボルエラーとは何ですか?一般的な原因とそれらを修正/防止する方法は何ですか? あなた自身の編集/追加してください。 ...

0  SDLへの私の簡単な紹介プログラムは構築されません。なぜ私はこれらのリンカエラーを犯したのですか?  ( My simple introduction program to sdl does not build why am i getting these lin ) 
だから、私は初めてSDLを使いようとしています、そしてこれまでのところ完全な混乱でした!私はこれを実行するためにこれを手に入れようとしていますが、私が試みたことすべてが失敗しました。私はすべての正しいガイドに続いていますが、それはまだ実行されません! <コー...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有