2009-12-04 41 views

回答

27

文檔描述the difference between include and include_lib的方法是:

include_lib類似於include,但不應該指出一個絕對的文件。相反,第一個路徑組件(可能在變量替換之後)被假定爲應用程序的名稱。

例子:

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

代碼服務器使用代碼:LIB_DIR(內核),找到核心的電流(最新)版本的目錄,然後將子目錄包括中搜索文件文件.hrl。

所以在你的例子中,你不需要指出你包含的eunit版本,你需要包括存在於你的庫路徑中的eunit:s的最新版本eunit.hrl。

+2

我相信你也可以使用include_lib來包含你想從特定版本的已安裝應用程序中獲得的文件。 – 2009-12-05 00:45:01

10

首先不明顯的一個差異是-include-include_lib在查找頭文件時使用了一組不同的路徑。 -include_lib實際上使用了代碼路徑,而不是頭文件路徑。

因此,標誌erlc預計添加路徑到-include搜索路徑是-I; -include_lib的標誌是-pa/-pz

已經提到的事實是,使用-include_lib可以避免我們將模塊指定(並因此綁定)到特定的庫版本。

此外,還有一個約定,內部接頭存儲在src/子目錄一個項目內,並使用-include包括在內。 外部文件頭(打算供其他庫/項目使用)文件存儲在include/中,並使用-include_lib包含在內。

相關問題