首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有dep设置为ERL_LIBS的ChicagoBoss

将所有dep设置为ERL_LIBS的ChicagoBoss
EN

Stack Overflow用户
提问于 2013-04-09 23:09:34
回答 3查看 829关注 0票数 0

我尝试使用它对ERL_LIBS环境变量的所有依赖项来设置ChicagoBoss。我得到了ChicagoBoss,并用./rebar get-deps && ./rebar compile编译了它,现在我在/home/user/ChicagoBoss目录中有ChicagoBoss,在/home/user/ChicagoBoss/deps目录中有它的依赖项。我想把它添加到ERL_LIBS中。我在我的.bashrc文件中放入以下行:

export ERL_LIBS=/home/user/ChicagoBoss/:/home/user/*/deps/*/

但是当我尝试使用ChicagoBoss依赖项,例如ranch应用程序时,可以使用:

application:start(ranch).

我收到错误:

代码语言:javascript
复制
{error,{"no such file or directory","ranch.app"}}

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-10 16:19:53

ERL_LIBS环境变量没有通配符的概念。当您使用像-pa deps/*/ebin这样的参数启动erl时,您的shell将扩展通配符。您需要手动添加每个库路径(应用程序的路径,而不是其ebin目录!)敬ERL_LIBS

为了简化这个过程,我们可以使用Python:

代码语言:javascript
复制
import glob
print ':'.join(glob.glob('/home/user/*/deps/*/'))
票数 1
EN

Stack Overflow用户

发布于 2013-08-20 00:08:45

我在一个简单的应用程序中遇到了相同的错误。原来,在主应用程序目录中缺少一个'dep‘目录: ranch安装在那里。我不知道为什么在我的情况下它会丢失,但我通过从另一个工作的牧场应用程序复制该目录解决了它。

编辑:有趣的是,我收到一条编译消息:"Dependency not available: ranch-.* ({git,"git://github.com/extend/ranch.git","master"})“,这一定是关于缺少'dep‘顶级目录的警告。

票数 0
EN

Stack Overflow用户

发布于 2013-11-02 19:27:59

ERL_LIBS可以简单地指向所有依赖项项目所在的父目录。如果您的项目遵循Erlang Project目录约定(您的Project/src、您的Project/ ebin、您的Project/ include ),那么Erlang将动态地将这些项目中的ebin和include关联到您的上下文。

示例

代码语言:javascript
复制
/place/Project1

/place/Project1/ebin/...
/place/Project1/include/...
/place/Project1/deps/...
/place/Project1/deps/DependencyProject2...
/place/Project1/deps/DependencyProject3...

从上面可以看出,/place/Project1/deps是其他子项目(依赖项)的容器。在这种情况下,如果您可以像下面这样运行应用程序

erl env ERL_LIBS "/place:/place/Project1/deps“。这将包括运行时上下文中的所有相关项目( Project1、DependencyProject2和DependencyProject3 )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15905653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档