"include_lib"和"include"有什么区别?
例如
-include_lib("eunit/include/eunit.hrl")
Chr*_*ian 29
文档描述include和include_lib之间区别的方式是:
include_lib
类似于include
,但不应指出绝对文件.相反,假设第一个路径组件(可能在变量替换之后)是应用程序的名称.例:
-include_lib("kernel/include/file.hrl").
代码服务器使用代码:lib_dir(内核)来查找当前(最新)版本的内核的目录,然后搜索子目录include以查找文件file.hrl.
因此,在您的示例中,您不需要指出您包含的eunit版本,您将包含库路径中存在的eunit:s的最新eunit.hrl.
ers*_*zcz 13
一个区别是不明显起初是-include
和-include_lib
寻找头文件时,使用一组不同的路径.-include_lib
实际上使用代码路径,而不是头文件路径.
因此,该标志erlc
期望添加一条到-include
搜索路径的路径-I
; -include_lib
是-pa
/ 的标志-pz
.
已经提到的事实是使用使-include_lib
我们无法指定(并因此将其绑定)模块到特定的库版本.
此外,还有一个约定,即内部头文件存储在src/
项目的子目录中并包含在内-include
.外部标题(供其他库/项目使用)文件存储在其中include/
并包含在内-include_lib
.