0

基本的に外部アクセサリ フレームワークを使用してカスタム Bluetooth デバイスと通信する ios スタティック ライブラリを作成しました。iOS 7 + Xcode 5 を使用しています。テスト プロジェクトでこのライブラリを使用しようとすると、eaaccessory の不明なシンボルのリンカ エラーが発生します。 . テスト プロジェクトに eaaccessory フレームワークを追加すると、すべて期待どおりに動作します。

スタティック ライブラリに eaaccessory フレームワークを埋め込むことはできるのでしょうか? そのため、私たちのライブラリのユーザーは、プロジェクトに eaaccessory フレームワークを追加する必要がありません。

Another strange thing I have noticed is my static library compiles and links perfectly ok even without adding eaaccessory framework to my library project.

Finally my problem is I have to add eaaccessory framework to my test project to link correctly, no matter whether I add eaaccessory to my library project or not.

4

2 に答える 2

0

リンカが静的ライブラリを構築するとき、ライブラリ内のすべてのシンボルを解決する必要はありません。静的ライブラリとリンクすると、そのライブラリからビルド中のライブラリにシンボルがインポートされます。シンボルは実行時に動的にロードされることを意図しているため、フレームワークからシンボルをインポートしません。

システム フレームワークの一部をスタティック ライブラリに埋め込むことはできません。実行時に関数をロードするのではなく、システム フレームワークから静的ライブラリに関数をインポートすると、関数が破損する可能性が非常に高くなります。

于 2014-08-04T16:00:01.557 に答える