3

xcode4.6を使用しています。SDKはiOS6.1です。私が得たエラーは 、「libEncrypt.a」と呼ばれる自分で作成した静的ライブラリをプロジェクトリンクしているときに「アーキテクチャarmv7の未定義のシンボル」です。

アーキテクチャarmv7を使用してlibEncrpt.aを作成したと確信しています。「otool-a」を使用して静的ライブラリを確認すると、以下のメッセージが表示されます。xcodesillが「アーキテクチャarmv7の未定義のシンボル」のようなエラーを文句を言う理由がわかりませんか?

> otool  -a libEncrypt.a 
Archive : libEncrypt.a (architecture armv7)
0100644 505/20    108 1360127518 #1/20
0100644 505/20   3604 1360127513 #1/20
Archive : libEncrypt.a (architecture armv7s)
0100644 505/20    108 1360127518 #1/20
0100644 505/20   3604 1360127513 #1/20

詳細エラーメッセージブローを追加します。

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

1 に答える 1

2

アプリと静的ライブラリ プロジェクトの [アクティブなアーキテクチャのみをビルド] 設定を再確認してください。

静的ライブラリでは「Build Active Architecture Only」を YES に設定していましたが、iOS アプリでは設定していなかったため、まったく同じ問題が発生しました。iOS アプリがデバッグ ビルドを実行しようとしたとき、すべてのアーキテクチャが存在すると予想されていましたが、iPhone 5 にデプロイしていたため、スタティック ライブラリ用にビルドされたのは armv7s だけでした。

于 2013-04-12T18:03:47.030 に答える