28

iOS5でスキャンにZBarを使用していましたが、うまくいきました。

iOS6にアップデートしたら動かなくなりました。次のエラーが表示されます。

    ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12  /MyApp name/ZBarSDK/libzbar.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

私の側で何が問題なのですか?

4

9 に答える 9

52

Xcode で、ターゲットの設定に移動し、「Valid Architectures」を変更します

から

armv7,armv7s

armv7

この変更により、アプリは新しい iPhone5 プロセッサが持つ可能性のある最適化を利用できなくなりますが、サード パーティのライブラリがアップグレードされるのを待つ必要はなく、16 進エディタをいじる必要もありません。

于 2012-09-20T16:42:54.490 に答える
30

私は最近同じ問題に直面しました。問題は、ZBar SDK が armv7s アーキテクチャに対応していないことにあるようです。

私はこの方法で問題を解決しました:

  1. ZBar ホームページに移動し、mercurial リポジトリに移動します (直接リンク)
  2. zbar リポジトリを zip としてダウンロードします。
  3. ファイルを解凍し、「iphone」という名前のサブフォルダーに移動します。
  4. XCode プロジェクトを開きます。
  5. "Examples" フォルダーを削除します (このフォルダーが原因で、マシンでビルド エラーが発生しました)。
  6. 「CMD + B」を押してソースをビルドします。
  7. 新しい libzbar.a ファイルを見つけます。(ユーザー/ライブラリ/開発者/Xcode/DerivedData/zbar...)
  8. プロジェクト内の古い libzbar.a ファイルを新しいファイルに置き換えます。
  9. 「CMD + R」を押すと、準備完了です。
于 2012-09-24T08:25:13.547 に答える
21

hg ソースのダウンロード/再コンパイルのチュートリアルはすばらしいですが、すべてを行う必要はありません。

http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/を参照してZBarSDK-1.3.1.dmg をダウンロードするだけで、最新のアーキテクチャ (私の場合は armv7、armv7s) ですぐに使用できます。 )。

アップデート:

XCode 5、iOS 7、またはアーキテクチャー arm64 での ZBarSDK に関する問題を報告した人もいます...今日、このプロジェクトに戻って同様の問題を経験し、iOS 7 で動作するようにコンパイルされた ZBarSDK ライブラリーがあることを発見しました: http ://www.nerdvision.net/app-development/ios/zbar-sdk . 古いファイルを新しいファイルに置き換えて、プロジェクトをコンパイルしました。プロジェクトのビルド設定のアーキテクチャが amrv7、arm64 ($ARCHS_STANDARD) に設定され、ベース SDK が iOS 8.0 に設定され、Build Active Architectures Only フラグが Yes に設定されていることに注意してください。

これについて SO に質問があります: zbar SDK dont work for armv7s(iPad 4 iOS 7)

ヒントをくれた @cdescours に感謝します!

于 2013-03-29T16:11:32.367 に答える
2

私は同じ問題を抱えていますが、追加armv6しただけarmv7でiOS6で動作します。挿入するだけarmv6です。

于 2013-04-22T10:50:31.027 に答える
1

バイナリ ライブラリに armv7s のコードがありません。したがって、現在のアーキテクチャ用に再コンパイルする必要があります。

于 2012-09-20T09:14:59.670 に答える
1

ソースを再コンパイルします。zbar のソース コードをダウンロードし、新しいプロジェクトにコンパイルします。それは簡単です。

于 2012-11-08T06:52:00.883 に答える
0

Mercurialリポジトリのクローンを作成し、Xcodeでビルドします。それは超簡単。リポジトリへのリンクは次のとおりです。

http://zbar.hg.sourceforge.net/hgweb/zbar/iphone/summary

于 2013-03-18T13:30:07.463 に答える
0

IOS開発を学んでいます。数日間の掘削の後、

ZBar SDK をインストールするためのチュートリアルは次のとおりです。

1、受け入れられた答えは正しいですが、いくつかの制限があります。(試してみました、動作します!)

2、代替ソリューションはこちら. (試してみました、動作します!)

3、最善の方法は、すべての異なるアーキテクチャを分離して構築し、それらを lipo を使用してバインドすることです:

これらのアーキテクチャを理解するための読み物:

http://wanderingcoder.net/2010/07/19/ought-arm/

http://wanderingcoder.net/2011/09/25/compiling-armv7/

于 2013-12-10T22:32:31.243 に答える