4

Microblink の PDF417フレームワークをライブラリに含めたいです。ライブラリ プロジェクトはコンパイルして正常に動作しますが、アプリケーションで MyLibrary.a ファイルを使用すると、「アーキテクチャ armv7 の未定義シンボル」エラーが発生します。何か案は?カスタム フレームワークをライブラリに含めることはできますか、それは不可能です。

4

2 に答える 2

1

Trojanfoe の答えはあなたの場合には正しいです。しかし、一般的に、答えはフレームワーク内のライブラリのタイプによって異なります。

iOS/MacOS フレームワークは、関連するすべてのヘッダー ファイルを含むライブラリの単なるコレクションです。これにより、フレームワーク全体を一度に含めることができるため、ライブラリを他のプロジェクトに含めることがはるかに簡単になり、リンカーとヘッダーの検索パスとリンカー フラグを変更する必要がなくなります。

ライブラリ自体は、静的ライブラリまたは動的/共有ライブラリのいずれかです。フレームワークには任意のタイプのライブラリを含めることができ、その点に関して制限はありません。

フレームワークのライブラリが静的である場合、そのライブラリのすべてのオブジェクトがコンパイル時にターゲット製品にコピーされます。ターゲット製品が静的ライブラリ (この場合はMyLibrary.a ) の場合、すべてのオブジェクトがMyLibrary.aに含まれているため、アプリケーション内のフレームワークとの追加のリンクは必要ありません。

フレームワーク内のライブラリが動的である場合、そのライブラリのオブジェクトは、コンパイル時ではなく、ロード時または実行時にロードされます。そのため、そのタイプのフレームワークはエンド アプリケーションともリンクする必要があります。

あなたの場合、pdf417 フレームワークには動的ライブラリが含まれています。つまり、そのフレームワークもエンド アプリケーションに含める必要があります。


私は Microblink のPDF417 SDKの開発者です。問題は、ライブラリを任意の形式で提供できることです。Github リポジトリで選択した形式は、すべてのリソース ファイルと共に動的ライブラリを含む .embeddedframework です。これにより、フレームワークをアプリケーション プロジェクトに含めることが非常に簡単になります。別のフォーマットが必要なユースケースがある場合は、https://help.microblink.com/hc/en-usからお問い合わせください。

于 2014-09-04T13:45:25.167 に答える
0

静的ライブラリは、オブジェクト ファイルの単なるコレクション (圧縮や階層のない zip ファイルに少し似ています) であり、依存関係に関する情報を保持することはできません。

したがって、ライブラリと依存フレームワークの両方に対して、最終的な実行可能バイナリをリンクする必要があります。依存関係が静的ライブラリ、動的ライブラリ、またはフレームワークであった場合も同様です。

于 2014-09-04T11:03:30.523 に答える