我想编写一个独立的Erlang应用程序,它可以像任何其他程序一样运行(单击.exe可执行文件)。就像Wings3D一样。
我该怎么做呢?使之成为可能的最佳方法是什么?我在Windows平台上,如果这很重要的话。
第二次更新:
嗯,我还没有导出promodb:start/0
函数,这也是Erlang无法启动的原因(而且,正如Muzaaya所说,werl -s
不能工作)。但现在我有了另一个奇怪的问题。在我的rebar.config
中,我有两个依赖项:
{deps, [
{cowboy, ".*", {git, "https://github.com/extend/cowboy.git"}},
{erlydtl, ".*", {git, "https://github.com/evanmiller/erlydtl.git"}}
]
}.
在我开始使用Erlang之后
erl -pa ebin deps/cowboy/ebin deps/erlydtl/ebin deps/proper/ebin -s promodb
我通过application:which_application()发现只有牛仔才会启动:
[{cowboy,"Small, fast, modular HTTP server.","0.4.0"},
{stdlib,"ERTS CXC 138 10","1.18"},
{kernel,"ERTS CXC 138 10","2.15"}]
据我所知,Erlang应该启动promodb.app
文件中所需的所有应用程序,如下所示:
{application, promodb,
[
{description, ""},
{vsn, "0.1"},
{registered, [promodb_sup]},
{applications, [
kernel,
stdlib,
cowboy,
erlydtl
]},
{mod, { promodb, []}},
{env, []}
]}.
我做错什么了?
发布于 2012-01-09 23:49:46
我使用rebar escriptize
来打包一个独立的包,比如钢筋。然后,您可以在linux中使用./PackageName
或在windows中使用escript.exe PackageName
。
发布于 2012-01-09 07:07:52
我认为您需要创建一个发布包和一个引导脚本,正如文档中所解释的那样。
发布于 2013-01-09 14:25:08
Erlydtl没有应用程序行为,它的工作方式类似于一个库。正如您在erlydtl示例中看到的那样,不需要启动任何应用程序。
https://github.com/evanmiller/erlydtl#template-compilation
检查一下这个:
erl -pa ebin deps/*/ebin
1> erlydtl:<<(<<“{ foo }”>>,my_module_name)。
有用吗?
我喜欢使用escrip化rebar选项来创建可执行文件。
https://stackoverflow.com/questions/8789863
复制相似问题