0

Boost 1_49 (iOS フレームワークとしてビルド)、静的フレームワーク ( https://github.com/kstenerud/iOS-Universal-Frameworkの偽のフレームワーク) に依存するいくつかのプロジェクト ライブラリでセットアップされた xcode ワークスペースがあります。 ) と、静的フレームワークを使用するテスト アプリです。

さらに、テストアプリはブーストを使用します。

フレームワークとは異なるバージョンのブーストでテスト アプリを動作させることが可能かどうかを確認するために、いくつかのテストを行いたいと考えました。このようにして、フレームワークを使用しているアプリケーションで使用する必要があるブーストのバージョンに制限を課すことなく、フレームワークをスタンドアロン フレームワークとして提供できます。

そのため、boost 1_48 を使用するようにテスト アプリをセットアップし、1_49 を使用するようにフレームワークをセットアップしました。ブーストを使用するすべてのプロジェクトがブーストフレームワークをバイナリにリンクするように設定されていないように設定しました。私が持っているフレームワークプロジェクトでは、実際にはブーストがまったく参照されていません依存関係によって生成されたすべての .a ライブラリへの参照のみがあります。

ProjectA
- Boost.framework 1_49

プロジェクトB

MyFramework
- ProjectA.a
- ProjectB.a

TestApp
- MyFramework.framework - Boost.framework 1_48

次に、フレームワークとテスト アプリの両方にコードを追加して、ブースト バージョンを出力しました。両方の場所で、1_48 ではなく、バージョン 1_49 が出力されました。さらに、ブーストにステップインするコードをテスト アプリに追加しようとしました (たとえば、現在の時刻を取得するだけです)。xCode デバッガーは、ProjectA に含まれるブースト バージョンではなく、ProjectA に含まれるブースト バージョンに移動しました。テストアプリ。

リンクで何が起こっているのですか?また、TestApp に含まれているバージョンのブーストのみをアプリケーションで使用するにはどうすればよいですか?

ありがとう、
ライロン

4

1 に答える 1

0

アプリケーション内の他のいくつかのライブラリも Boost 1.49 でリンクしていたことが問題だったようで、1.48 を使用していると思っていたにもかかわらず、1.49 も存在していました。しかたがない。

于 2012-07-18T17:49:39.453 に答える