web-dev-qa-db-ja.com

Xcodeのリンクエラー

Libxml2.2.dylibファイルを追加した後、このエラーが発生します

 Linking /Users/Biranchi/Desktop/Funmovies TabBarController/build/Debug-iphonesimulator/funmovies.app/funmovies (1 error)
 in /Developer/Platforms/iphoneOS.platform/Developer/SDKs/iphoneOS3.0.sdk/lib/libobjc.A.dylib, missing required architecture i386 in file

Command /XCode3.1.4/platforms/iphoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

このエラーの原因は何ですか?

すべての提案を歓迎します。

ありがとうBiranchi

13
Biranchi

プロジェクトエラーからlibxml2を削除した場合でも、同じエラーが発生しました:)この恥ずかしがり屋のXCodeは次のように書いています。

LIBRARY_SEARCH_PATHS = (
+                    "$(inherited)",
+                    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib,
+                );

「MyProj.xcodeproj」のプロジェクトの設定ファイル「project.pbxproj」に。

このパスは、手作業で次のように変更できます。

LIBRARY_SEARCH_PATHS = (
+                    "$(inherited)",
+                    /Developer/Platforms/iPhoneSimulatorOS.platform/Developer/SDKs/iPhoneSimulatorOS3.0.sdk/usr/lib,
+                );

ただし、デバイスにコンパイルするときに元に戻すことを忘れないでください。この問題を解決するためのより簡単な方法を見つけようとします。

2
Oleksii

正しい拡張子でインポートするようにしてください。

誤って#import "AClass.m"ではなく#import "AClass.h"と書いたときにエラーが発生しました:-)

34
hfossli

このライブラリlibz.1.2.3.dylibを削除し、これをlibz.1.2.5.dylibに追加する必要がありました。その後、それはうまくコンパイルされました。

8
mracoker

製品->クリーンをお試しください。私のために働いた。

5
Brooks Hanes

How to add as a compiled source

外部クラスがある場合は、それらがコンパイルソースに追加されていることを確認してください。特定のクラスをインポートしようとしたときに同じエラーが発生しました。これを修正するには、ビルドフェーズに移動し、コンパイルされたソースに追加します。

3
JH95

プロジェクトをビルドするときに同様の問題が発生しましたが、今回はファイルtimbreID.cを使用しました

arm-Apple-darwin10-gcc-4.2.1: timbreID.c: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

何度か試みた後、私はついにXCodeプロジェクトの「ターゲット」を調べて、ファイルtimbreID.cが赤(=見つからない)であることに気付きました。私はそれを右クリックして、新しいパスを手動で選択しました。

その後:ビルドに成功しました!!

2
Cordeiro

libz1.2.3を削除し、libz1.2.5ライブラリをビルドフェーズに追加するだけです。

2
AppleIosPandi

これが特定のフレームワークに関連する問題である場合は、ビルドフェーズで有効になっていることを確認してください。私の場合、MessageUI.frameworkを追加する必要がありました。Xcode4で、ターゲットの[ビルドフェーズ]タブに移動します。使用しているフレームワークが表示されていることを確認してください。そこにない場合は、[+]をクリックして追加します。

1
Graham P Heath

私は同じ問題を抱えていて、ターゲット情報をチェックし続けました

ライブラリの検索パスには、「$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/lib」というエントリがありました。

私はそれを削除し、アプリは動作しました!!!

ナビゲーションペインのどのファイルも赤でなかったのに、同じエラーが発生していました。クラスの名前をリファクタリングすると、xcodeパスの場所がオフになります。私にとってうまくいった解決策は、.hファイルと.mファイルを一度に1つずつ選択し、場所を「絶対パス」(右側のメニューの左端のタブ)に設定してから、ファイルシステム内のその場所を参照することでした。

0
sur

グラハム・ヒースの答えに追加する-これはスレッドでもっと目立つに値すると思います。

欠落しているフレームワークをチェックすることは、試すのに最も速くて簡単な修正です。完全に非破壊的であり、おそらくほとんどの人にとってこの種のエラーの原因です。フレームワークのリストを参照して、適切と思われるものを探して試してください。 XCodeは、コードを記述したとき、つまりリンクしたときだけ、クラスの問題にフラグを立てないため、多くの人がだまされていると思います。

私のエラーは、CoreLocationのいくつかのエラーに関する「リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用)」でした。

「アーキテクチャarmv7の未定義のシンボル:「_ OBJC_CLASS _ $ _ CLLocationManager」、参照元:NPTViewController.oのobjc-class-ref」

CoreLocation.frameworkを追加して、作業は完了しました。

0
Tim

失敗したコマンドをコマンドラインから発行してみてください。そこには、GUIでは表示されないstderr出力が表示されます。