2009-12-04 8 views

答えて

27

ドキュメントはthe difference between include and include_libを記述する方法は次のとおりです。

include_libincludeに似ていますが、絶対的なファイルを指摘するべきではありません。代わりに、(おそらく変数置換の後の)最初のパスコンポーネントは、アプリケーションの名前とみなされます。

例:

-include_lib("kernel/include/file.hrl").

コード・サーバーは、コードを使用しています:カーネルの現在(最新)バージョンのディレクトリを見つけるためLIB_DIR(カーネル)、その後、サブディレクトリが含まは、ファイルのファイルが検索され.hrl。

あなたの例では、あなたが含むeunitのバージョンを指摘する必要はありません。あなたのライブラリパスに存在するeunit:sの最新のeunit.hrlが含まれています。

+2

include_libを使用して、インストールされているアプリケーションの特定のバージョンから必要なファイルを含めることもできると思います。 –

10

最初に明らかになっていない点の1つは、-include-include_libは、ヘッダーファイルを探すときに別のパスセットを使用することです。 -include_libは、実際にはヘッダーファイルパスではなくコードパスを使用します。

したがって、フラグerlcは、検索パスへのパスを追加すると予想されます。-Iです。 -include_libのフラグは-pa/-pzです。

既に言及したように、-include_libを使用すると、モジュールを特定のライブラリバージョンに指定することができなくなります。

さらに、プロジェクトのsrc/サブディレクトリ内に格納されていると-includeを使用して含まれている内部ヘッダその規則があります。 外部ヘッダー(他のライブラリ/プロジェクトで使用することを意図している)ファイルはinclude/に格納され、-include_libを使用してインクルードされています。

関連する問題