web-dev-qa-db-ja.com

リンカコマンドエラー:「ld:シンボルi386のシンボルが見つかりません」

コンパイル時にエラーが発生しました。奇妙に思えます。詳細ビューアプリケーションとして機能しましたが、単一ビューを使用しても機能しないようです。これはエラーの詳細です。

   Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_RssArticle", referenced from:
      objc-class-ref in RssXmlParser.o
  ld: symbol(s) not found for architecture i386
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
25

次の手順を試してください。

  1. XCodeでプロジェクトを開きます。

  2. XCodeの左側のウィンドウ/パネルで、上部のプロジェクト名をクリックします。

  3. XCodeの右側のパネルから[ターゲット]を選択します。

  4. 右側のパネルの上部からビルドフェーズを選択します。 (他のオプションは、ビルド設定、ビルドルールです)

  5. 同じパネルで[ソースのコンパイル]を開きます。ここでチェック:すべてのファイル(.m)リストされていますか?すべてのファイルが下部にある(+)をクリックして追加しない場合(.m)リストにないファイル

  6. あなたのエラーによると、RssXmlParserはそこにないようです、これを追加してもう一度コンパイルしてください

これで問題なく動作します。

57
iOS Test

ターミナルに移動して、プロジェクトのあるディレクトリに移動して実行することを提案している人がいない

xcodebuild -verbose

詳細なエラーを確認し、エラーを読み取るだけで多くの時間を節約できます

26
vp_gold

.xcodeprojファイルの代わりに.xcworkspaceファイルを使用する必要があることに気付きました。

13
Dean

製品->掃除してから製品->実行:)

7
Oscar

私の場合、.hおよび.cファイルではなく、.hおよび.mファイルを使用して、誤ってUIViewのサブクラスを作成しました。拡張子の変更は簡単でしたが、.mファイルの内容を変更するつもりはありませんでした。したがって、私の.hファイルには

#ifndef My_Project_MPMyView_h
#define My_Project_MPMyView_h

#import <UIKit/UIKit.h>

@interface MPMyView : UIView

@end

#endif

.mファイルが間違って

#include <stdio.h>

.mファイルを次のように変更したとき

@interface MPMyView : UIView

@end

@implementation MPMyView

@end

リンカーエラーが修正されました。

2
Kevin

私はそれがどのように機能したのかわかりませんが、xcodeを閉じて、xcworkspaceファイルをクリックして再び開き、私のために働いただけです。うまくいけば、これがあなたの問題を解決できることを願っています。

0
yubaraj poudel

Xcode 6.4でも同様のエラーが発生しました。 Xcodeのバグのようです。

私の修正は、エラーの原因となった「.o」ファイルに移動し、必要なターゲットメンバーシップのチェックを外して再チェックすることでした。

0
haitham

ファイル名が重複しているため、このエラーが発生しました(NSManagedObjectContextサブクラスをエディターメニューからコアデータに自動的に作成しました)。

XCODE 5.0の時点で、終了して再起動するだけで、左側のペインの黄色の警告をクリックすると、xcodeがこれを認識して修正するはずです。

0
DanWebster

1つのプロジェクトで2つの異なる.Cファイル(メイン関数付き)を作成しようとしている可能性があると思います。 Cでは、プロジェクトごとに1つのメインエントランスのみが許可されます。

0
Harry.Wang

コンポーネントを個別のプロジェクトとして作成したため、同じ問題を解決しました。メインプロジェクトにフォルダーを追加した後、インポートされたコンポーネントグループディレクトリから.plist、.string、および余分なmain.mファイルを削除するのを忘れました。

アプリが明らかに競合するビルドコマンドを取得していたため、これらを削除すると問題が解決しました...

0

Altを押し続けます。上部のツールバーで

製品>ビルドフォルダーのクリーンアップ

「clean build folder」を押して、ビルドして実行するのを待ちます。ビルドファイルのエラーを解決する必要があります。

0
Daniel