2

私は現在、プリコンパイルされた sdk (Parrot SDK3: http://developer.parrot.com/docs/SDK3/#ios ) を使用して、Xcode 上の Swift でプロジェクト (シングル ビュー アプリケーション) に取り組んでいます。

私の問題は、ファイルが存在するのに「ファイルが見つかりません」というエラーが発生することです。

ここに画像の説明を入力

インポートしようとしているヘッダーは Objective-C で記述されています (ただし、これらのヘッダーを ObjC ファイルにインポートしたい)。ヘッダー ファイルへのパスを正しく記述し、循環インポートを回避するように注意しました。多くのクリーン/ビルドと多くの方法を試みた後、どうすればよいかわかりません。

4

1 に答える 1

0

Xcode は、「検索パス」リストを使用してヘッダー ファイル (.h) を見つけようとします。このリストには複数の検索パスを含めることができます。たとえば#import <a.h>、プログラムに検索パスがあり、検索パス リストにパス "/asd" と "/qwe" がある場合、"/asd/" としてヘッダーを見つけようとします。 ah" または "/qwe/ah" (両方を試します)。

Xcode プロジェクトのビルド設定でカスタム パスを追加できます。「検索パス」セクションがあり、そこに「ヘッダー検索パス」があります。ライブラリがプロジェクト内にある場合、パスに変数を使用すると便利です。これは、次$(SRCPATH)のようにプロジェクトのルート フォルダーに展開されます。

ここに画像の説明を入力

としてインポートし<somelib/somefile.h>、「ヘッダー検索パス」のパスに「/some_path/include」のように「include」で終わるものがある場合、ヘッダーは「/some_path/include/somelib/somefile.h」にある必要があることに注意してください。多くの場合、ヘッダーファイルは「include/somelib/」内ではなく「include/」内に配置されるため、これは正しくない場合があります。

これを解決する 1 つの方法は、ライブラリの "include" フォルダーを指すシンボリック リンクをカスタム名で作成し、そのシンボリック リンクの親ディレクトリをヘッダー パスに追加することです。

たとえば、空のディレクトリ「libs/include/」を作成し、ライブラリ ファイルを「libs/dist/libARDiscovery/.../include」に配置した場合、シンボリック リンク「libs/include/libARDiscovery」を作成できます。 "lib/dist/libARDiscovery/.../include" を指し、"$(SRCROOT)/libs/include" をヘッダー検索パスに追加します。

于 2018-05-22T19:48:20.670 に答える