【问题标题】:Header files location for an Erlang/OTP applicationErlang/OTP 应用程序的头文件位置
【发布时间】:2018-07-16 12:47:33
【问题描述】:

我应该将 Erlang/OTP 应用程序的 .hrl 头文件放在 /src/include 目录中吗?

【问题讨论】:

标签: erlang directory-structure erlang-otp


【解决方案1】:

发件人:http://erlang.org/doc/design_principles/applications.html

  • src - 必需。包含 Erlang 源代码、.app 文件的源代码和应用程序本身使用的内部包含文件。 [...]
  • 包括 - 可选。用于必须可从其他应用程序访问的公共包含文件。

这也解释为:http://erlang.org/pipermail/erlang-questions/2009-July/045516.html

用例 1: 您的项目有-defined 常量、解析转换等其他人需要使用您的代码。示例包括 qlcwebmachine

解决方案:将您的.hrl 文件放入/include。只要您的项目位于代码路径上,您的代码客户端就可以使用-include_lib() 加载.hrl 文件。


用例 2:您已将常用常量等集中在 .hrl 文件中。这些常量旨在供您的项目代码在内部使用。这意味着任何时候都不需要任何客户访问它们。

解决方案:将您的.hrl 文件放入/src。您的代码可以使用-include() 拉入.hrl 文件。


请记住,两个包含指令都是编译时构造。您可以将所有头文件放在/src 中,使用-include() 编译您的代码,然后通过将它们复制到/include 来选择性地“导出”您想要发布的头文件。我经常这样做是因为它使我的编译过程更容易——没有代码路径可以使用——它使我的客户端代码更清晰——他们可以使用-include_lib() 来查找我的公共头文件。

--凯文

【讨论】:

    猜你喜欢
    • 2011-07-13
    • 2011-05-24
    • 2012-10-11
    • 1970-01-01
    • 2014-07-04
    • 2015-12-14
    • 2016-08-23
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多