如何使用偏航作为带钢筋的 OTP 版本的一部分?

Posted

技术标签:

【中文标题】如何使用偏航作为带钢筋的 OTP 版本的一部分?【英文标题】:How to use yaws as a part of an OTP release with rebar? 【发布时间】:2015-02-15 03:26:44 【问题描述】:

我密切关注关于dependencies management 和release handling 的钢筋文档,并尝试创建一个类似于我之前的问题之一的accepted answer 中描述的版本。

但是,我无法将偏航作为 OTP 应用程序包含在由 rebar 生成的 OTP Release 中。

这是我的工作:

根据官方 rebar 文档创建一个版本(完成,可以使用 /rel/myapp/bin/myapp start 运行一个简单的 gen_server) 在项目目录下的rebar.config文件中指定yaws依赖 运行rebar get-deps(这会拉偏航和ibrowse) 将此添加到reltool.configapp, yaws, [incl_cond, include] 将偏航添加到myapp.app.src中的应用程序列表中 rebar compile generate:

... ==> Leaving directory '/myapp/deps/yaws/rel' ==> yaws (compile) yaws.erl:13: can't find include file "yaws_appdeps.hrl" yaws.erl:220: undefined macro 'YAWS_APPDEPS' yaws.erl:174: function start_app_deps/0 undefined yaws.erl:194: function start_app_deps/0 undefined ERROR: Command [compile] failed!

注意事项:

官方的yawsdocumentation好像对这个问题不是很解释。

如果我将 yaws 更改为牛仔,我不会收到这样的错误。

更新

这是我的目录结构:

. ├── apps │   └── myapp ├── deps │   ├── ibrowse │   └── yaws └── rel └── files

【问题讨论】:

您使用的是什么版本的钢筋?这似乎是钢筋未运行src/yaws.app.src.script 文件引起的问题。例如,最近在提交 7d55c99 中修复了这个钢筋区域的错误。 不幸的是,除非我签出 rebar commit b796065,构建它并使用该 rebar 构建 yaws 和应用程序,然后生成版本,否则我无法使其与新的钢筋一起工作.该提交是我在之前评论中提到的那个之前的那个。 史蒂夫,非常感谢您的评论。我获取了 b796065,重新编译了 rebar 并用它来编译/生成。不幸的是,我得到了完全相同的错误。 你获取的是什么版本的偏航?确保它是 1.98 或更高版本。您也可以尝试完全删除deps/yaws,让您的新钢筋重新获取并重建它。 我已删除 deps/yaws 并重新获取 yaws 1.99。不幸的是,我得到了完全相同的错误。 【参考方案1】:

打开yaws的src目录。缺少的“yaws_appdeps.hrl”包含文件可能具有“.ini”或“in”扩展名。删除它并重新编译

【讨论】:

以上是关于如何使用偏航作为带钢筋的 OTP 版本的一部分?的主要内容,如果未能解决你的问题,请参考以下文章

使用 OTP/Erlang 作为 Web 应用程序基于组件的架构的一部分

如何从前向矢量计算俯仰和偏航值

钢筋外壳 - 传递配置文件

使用四元数计算 iphone 的偏航、俯仰和滚动?

如何安装特定版本的 Erlang/OTP?

Revit钢筋创建二 自由钢筋Rebar