2

Xcode に、 という名前のフレームワークがあるとしFooます。フォルダ内Foo.framework/Headersには、ファイルFile1.hFile2.h. ヘッダー ファイルFile1.hにはFile2.h、次のディレクティブを使用してインクルードします。

#include <File2.h>

このFooフレームワークは、特に Mac を対象としていない C++ ライブラリの再パッケージです。

ここで、フレームワークにリンクするプロジェクトがあるとしますFoo。次のディレクティブを介してインクルードするファイルがありますMyFile.mmFile1.h

#import <Foo/File1.h>

をコンパイルしようとするMyFile.mmと、 が見つからないため、常に失敗しますFile2.h。フレームワークのヘッダー ファイルを変更せずにこれをコンパイルして実行するにはどうすればよいFooですか?

興味深いことに、問題の実際のフレームワークは、 Maxソース ツリーから取得したTaglibのフレームワーク パッケージ バージョンです。インクルードしようとしたファイルは、インクルード ディレクティブにプレフィックスなしでインクルードしているため、インクルードするファイルをコンパイルすると常に失敗します。エラーはこの 1 つのヘッダー ファイルだけにあるのではなく、多数のヘッダー ファイルに同様の問題があるため、これらのインクルード ステートメントをすべて変更するのは簡単ではありません。必要な「不足している」ヘッダー ファイルはすべて、実際にはフレームワークのサブディレクトリに存在します。<taglib/mp4.tag>.mmmp4tag.h<tag.h><taglib/...>Header

アプリで Taglib を使用しようとしています。Taglib をヘッダー ファイルを含むフレームワークとしてコンパイルしてアプリに追加することはできましたが、上記の問題によりアプリをコンパイルできないようです。

誰にも指針がありますか?

ありがとう。

4

2 に答える 2

1

私はそれFile1.hが言うべきだと思います:

#include "File2.h"

Xcodeの「AlwaysSearchUserPaths」オプションをチェックしてみてください。

于 2010-06-26T16:36:09.713 に答える