9

ZBarSDKを使用してiOSのコードスキャナープロジェクトを構築しています。libzbar.a静的ライブラリを含めるのではなく、ZBarのソースから直接プロジェクトをビルドしようとしています。

libzbar.aをビルドするためのXCodeプロジェクトを含むZBarソースをダウンロードしました。プロジェクトからすべてのソースファイルをコピーしようとしましたが、機能しませんでした。未定義のシンボルエラーが発生し続けます。

iOSのみをサポートする必要があることを考えると、どのソースファイルを含める必要がありますか?

プロジェクトをビルドするには、フォルダー構造に厳密に従う必要がありますか?

ソースファイルを直接含める場合、ビルド設定は必要ですか?

編集: libzbarのXCodeプロジェクトで使用されているのと同じフォルダー構造とビルド設定に従いました。ライブラリを構築できましたが、リンク中に失敗します。エラーが発生します:ld: duplicate symbol _OBJC_METACLASSすべてのソースファイルに対して。私は再確認しましたが、プロジェクトに元のlibzbar.a静的ライブラリへの参照がないか、これらのソースファイルが複数存在します。それらの参照を削除すると、プロジェクトは正常にビルドされますが、ライブラリのシンボルが参照されるたびに失敗します。まだ何か足りないと思います!!

4

3 に答える 3

3

私はついにこの問題を解決しました。これが私がしたステップです:

1)プロジェクトのソースファイルを私のプロジェクトにコピーしました。

2)プロジェクトからlibzbar.aの依存関係を削除しました。

Header Search Paths3)プロジェクトのビルド設定にソースとヘッダーを含むフォルダーへのパスを追加しました。

4)次のユーザー定義のビルド設定をプロジェクトに追加しました。

EXCLUDE_SOURCE_FILE_NAMESGCC_MODEL_TUNINGPREBINDING および
USE_HEADERMAP
_
_

于 2012-03-30T10:20:03.460 に答える
0

ソースコードから静的ライブラリを自分で作成してから、出力静的ライブラリをプロジェクトに追加するか、プロジェクトをリンクして、プロジェクトをビルドする前に静的ライブラリを強制的にビルドする必要があります。

デフォルトのMercurialリポジトリからzipファイルをダウンロードし、xCodeでファイルを開いた後、ターゲット選択ドロップダウンボックスの「EmbedReader」部分をクリックして、「zBarSDK」に切り替えます。

zBarSDKに切り替えたら、製品メニューからビルドするだけで、静的ライブラリファイルが作成されます。

于 2012-03-25T14:51:56.677 に答える
-1

以前はZXinglibを使用しましたが、うまく統合されました。これはプロジェクトとして含まれており、メインプロジェクトには、メインプロジェクトの前にビルドするためのターゲット依存関係があります。必要に応じてソースを編集しましたが、問題なく使用できます。

このチュートリアルを使用しました。それはあなたのニーズにも役立つことがあります。

于 2012-03-29T11:05:50.073 に答える