【发布时间】:2018-07-16 12:47:33
【问题描述】:
我应该将 Erlang/OTP 应用程序的 .hrl 头文件放在 /src 或 /include 目录中吗?
【问题讨论】:
标签: erlang directory-structure erlang-otp
我应该将 Erlang/OTP 应用程序的 .hrl 头文件放在 /src 或 /include 目录中吗?
【问题讨论】:
标签: erlang directory-structure erlang-otp
发件人:http://erlang.org/doc/design_principles/applications.html
- src - 必需。包含 Erlang 源代码、.app 文件的源代码和应用程序本身使用的内部包含文件。 [...]
- 包括 - 可选。用于必须可从其他应用程序访问的公共包含文件。
这也解释为:http://erlang.org/pipermail/erlang-questions/2009-July/045516.html
用例 1: 您的项目有
-defined 常量、解析转换等其他人需要使用您的代码。示例包括qlc或webmachine。解决方案:将您的
.hrl文件放入/include。只要您的项目位于代码路径上,您的代码客户端就可以使用-include_lib()加载.hrl文件。
用例 2:您已将常用常量等集中在
.hrl文件中。这些常量旨在供您的项目代码在内部使用。这意味着任何时候都不需要任何客户访问它们。解决方案:将您的
.hrl文件放入/src。您的代码可以使用-include()拉入.hrl文件。
请记住,两个包含指令都是编译时构造。您可以将所有头文件放在
/src中,使用-include()编译您的代码,然后通过将它们复制到/include来选择性地“导出”您想要发布的头文件。我经常这样做是因为它使我的编译过程更容易——没有代码路径可以使用——它使我的客户端代码更清晰——他们可以使用-include_lib()来查找我的公共头文件。--凯文
【讨论】: