2009-08-18 8 views
5

私が使用している、または使用したい特定のファイル構造を扱うためにXCodeを取得できません。XCodeにパスが含まれています

私は、次の形式のファイルのセットを持っている...

 

Library 
    Headers 
     Library 
     Package1 
      Header1.h 
      Header2.h 
      HeaderN.h 
     Package2 
      Header1.h 
      Header2.h 
      HeaderN.h 
     PackageN 
      Header1.h 
      Header2.h 
      HeaderN.h 
    Source 
     Package1 
     Source1.m 
     Source2.m 
     SourceN.m 
     Package2 
     Source1.m 
     Source2.m 
     SourceN.m 
     Package3 
     Source1.m 
     Source2.m 
     SourceN.m 

ザ・私はこのライブラリの外部のコードのためにしたいモデルがある...など

#import "Library/Package/Header.h" 

私が指すようにしたいですLibrary/HeadersではXcodeを使用できますが、内部のフォルダでは使用できません。このツリーをプロジェクトに追加すると、XCodeはツリー内のすべてのノードへの暗黙のインクルードパスを作成するように見えます。プロジェクト内でこのツリーの外

クライアントコードは、これを行うことができます...

#import "Header.h" 

代わりに...

#import "Library/Package/Header.h" 

私はdissallowする方法を見つけるように見えることはできません非適格フォーム。

ご協力いただければ幸いです。プロジェクト内のファイルのヘッダーを含める場合は、あなたが発見したとして

おかげで、 -Roman

答えて

1

は、XCodeのは、常に、パスの資格なしでそれらを見つけるでしょう。最適な解決策は、プロジェクトからヘッダーを削除し、プロジェクト設定でヘッダー検索パスとして「ライブラリ/ヘッダー」を指定することです。ヘッダーはプロジェクトでは表示されませんが、コンパイル中にXCodeによって暗黙的に検出されることもありません。クライアントコードは、必要なヘッダーファイルに到達するために、 "Library/Headers"のフルパスを指定する必要があります。

+0

です。ライブラリとアプリを同時にオーサリングしていると、残念です。私はいつもそれを自分のプロジェクトに分解することができると思う。同じプロジェクト内でライブラリターゲットを作成しようとしましたが、暗黙的なパスは変更されません。 –

+4

私は、プロジェクトの中に編集を容易にするためにヘッダーを持たせる方法があるが、プロジェクトによって見つけられないことがわかった。ヘッダーを単にフォルダ参照(xcodeでは黄色ではなく青色)としてインポートしてください。 –

+0

+1便利です。ありがとう! – fbrereto

6

フラットヘッドマップを構築するというXcodeの動作に逆行しています。これを無効にするには、プロジェクト設定に

HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=NO 

を追加します。

関連する問題