在我的Erlang应用程序中,我想使用外部库(erlzmq2)。我是erlang的新手,不知道如何打包或编译它。目前我正在使用rebar进行编译,如果答案基于编辑rebar.config文件,那对我来说会更有用。
答案 0 :(得分:5)
幸运的是,您的图书馆似乎是螺纹钢打包的,因为它的仓库根部有一个rebar.config
:https://github.com/zeromq/erlzmq2
假设您尚未配置依赖项,则只需将其添加到您自己的rebar.config
:
{deps, [
{erlzmq2, "2.*", {git, "git://github.com/zeromq/erlzmq2", {tag, "2.1.11"}}}
]}.
这可以添加“2.1.11”版本。你也可以对抗头部:
{deps, [
{erlzmq2, "3.*", {git, "git://github.com/zeromq/erlzmq2"}}
]}.
“deps”条目的格式为
git
,除了网址外,您还可以为其添加branch
或tag
元组。我认为,使用Rebar和Reltool打包应用程序是一个全新的问题,而且是一个复杂的问题。但如果您的应用程序相当小/一次性/非正式,您可以尝试使用Rebar的“escriptize”命令。
如果您的应用是“foo”,那么您需要在src中foo.erl
拥有相应的main/1
。然后添加到您的rebar.config
:
{escript_incl_apps, [erlzmq2]}.
并从命令行(获取代表和编译后),运行
钢筋escriptize
Rebar会将您所有的二进制文件和“encrypt_incl_apps”的二进制文件填充到一个作为可执行文件运行的文件中。
答案 1 :(得分:0)
只是为了获得更多其他信息,您可以创建一个名为lib的单独文件夹,并将lib路径导出到ERL_LIBS,如果这不是钢筋兼容的话。如果库足够好你可以把它放在OTP lib目录中,但不建议这样做!