この質問は xcode4 (および古い xcode sからのプロジェクトのアップグレード)のより一般的な問題をカバーするために過去数週間にわたって進化しました。
ただし、多くの問題は同じ一連の指示に従うことで解決できます。
次の問題のいずれかがある場合は、受け入れられた回答の方法を試してください。
タイトル:「レキシカルまたはプリプロセッサの問題ファイルが見つかりません」Xcode 4
私はXcode 4にプロジェクトを作成してデバイスとシミュレータ上で正常に実行しますが、静的ライブラリに関連付けられたヘッダーファイルを検索するときにエラーをアーカイブしようとすると:
In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
#import "Merchant.h"
^
1 error generated.
Xcodeはエラーを出します
lexical or preprocessor issue file not found
Muchグーグルは、多くの人々がこの問題を抱えているが解決策がないことを示しています。誰でも修正または手がかりさえもらった。
更新:user header
検索パスは、すべての構成で${BUILT_PRODUCTS_DIR}
に設定されます。アーカイブ時を除き、任意の構成を使用して正常にビルドします。
更新2:Merchant.h
は、自動生成されるコアデータクラスであるため、.xcdatamodeld
パッケージ内ですが、ヘッダーはライブラリが構築されると、すべてがパブリックヘッダーディレクトリにコピーされます。
注:以下の手順は、Xcodeアーカイブの問題の90%を解決しますが、コメントから quiting Xcode firstをお勧めします。これにより、微調整の時間を節約できます。
$(LOCAL_APPS_DIR)
に設定しますXCode 4でも同じ問題が発生しました:「字句解析またはプリプロセッサの問題MyFile.hが見つかりません」。ただし、MyFile.mは静的ライブラリではなく、単なる標準クラスでした。そして、MyFile.mとMyFile.hは適切にインクルードされ、プロジェクトにインデックスが付けられました。
だから...私はXCodeとシミュレータを終了し、それらを再起動し、問題は消えました。
「すべてのソースファイルのインクルードをスキャンする」ターゲットビルド設定を「いいえ」から「はい」に変更すると、問題がなくなることがわかりました。
.hファイルをFinderのプロジェクトのディレクトリにコピーするだけで、ビルド設定を変更せずにこの問題を解決できました。それらをプロジェクトにまったく追加しませんでした。それらをプロジェクトのファイルシステムディレクトリに置くだけで、Xcodeの暗黙的なリンクを適切に機能させることができたようです。詳細 こちら 。
私の解決策は
#import "HeaderFile.h"
に
#import <FrameworkName/HeaderFile.h>
そして、すべてが再び機能し始めました。珍しいのは、数回ビルドした後に突然動作しなくなったことです。
このような奇妙な問題がありました。 [すべてのリソースファイルをスキャン...]を[はい]に変更しても解決しませんでした。フレームワークの検索パスを見てみると、
それは正しいように見えたが、まだ失敗していた。その後、2と3の順序を並べ替えてみましたが、突然うまくいきました。なぜそれがヒックアップであるのかわからないが、他の誰かを助ける場合に試してみるために物事のリストにそれを追加したかった。
設定すると問題は解決しました
ビルド設定->プロジェクト->検索パスをはい
私は同じことをしていました—私のプロジェクトには2つのターゲットがありました(ProjectおよびProjectTest of GHUnit
)。私のスキームがProjectに設定されたとき、<GHUnitIOS/GHUnit.h>
のインポートは「レキシカルまたはプリプロセッサーの問題ファイルが見つかりません」の問題でした。しかし、スキームとして設定するとProjectTestで、すべてが正常でした。そのため、ProjectにもGHUnitIOS.framework
を追加しました。
プロジェクトの特定の.hファイルでこの「ファイルが見つかりません」というエラーが発生していました。プロジェクトからその.hファイルを削除し(「参照の削除」を選択)、再度追加することで問題を解決しました。
アクティブなスキームのビルド設定でヘッダー検索パスが正しく構成されていないようです。それらを確認し、現在の設定で質問を更新します。
より多くのバリアントを追加する:foo.m
ビルドフェーズでCompile Source
の2つのインスタンスがあり、それが何らかの原因でfoo.h
の「ヘッダーが見つかりません」になりました。
シミュレータでも同様の問題が発生していますが、デバイスではなく、ヘッダー検索パスフィールドが空です(デフォルトのようです)。しかし、ワークスペースを変更することで問題は解決したようです。新しいワークスペースを作成して、プロジェクトを追加して、それが役立つかどうかを確認できます。今、私はその理由を調査しています。
別の機会:
ワークスペースプロジェクト:[ビルドフェーズ]セクションの[ターゲット]を確認します。多くのマニュアルでは、すべてのヘッダーを別の場所にコピーするには、ファイルのコピービルドフェーズが必要であると言われています。iOSフレームワークには共有するヘッダーファイルを含めることができないためです(私の場合)。
これらのファイルをコピー先として「製品ディレクトリ」オプションを選択します。または、ヘッダーが常駐する別のディレクトリ。
それは私のために働いた。おそらく、Archive(またはRelease)ディレクトリのビルドは、Debugのビルドで予想されるものとは非常に異なります。
また、ワークスペース設定でビルドディレクトリを確認します。
XD
私にとって、この問題はプロジェクトに新しいファイルを追加した後に発生しました。 NSObjectから派生した空白の.mおよび.h。ここに私がそれを解決した方法があります:
その後、それらを再度追加しましたが、それも機能しました。
間違いなくxCodeのバグ...