簡體   English   中英

使用Erlang啟動應用程序

[英]Starting application with Erlang

我想編寫一個獨立的Erlang應用程序,它可以像任何其他程序一樣運行(通過單擊.exe可執行文件)。 像Wings3D那樣的東西。

我該怎么做 ? 什么是使它成為可能的最佳方法? 我在Windows平台上,如果它很重要。

第二次更新:

好吧,我沒有導出promodb:start/0函數,這就是Erlang無法啟動的原因(並且,正如Muzaaya Joshua所說, werl -s不起作用)。 但現在,我有另一個奇怪的問題。 在我的rebar.config我有2個依賴項:

{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

我發現應用程序:which_application()只啟動了Cowboy:

[{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, []}
 ]}.

我做錯了什么 ?

我使用rebar escriptize來打包像rebar escriptize這樣的獨立包。 然后你可以在linux中使用./PackageName或在windows中使用escript.exe PackageName

我認為你需要創建一個發布包和一個啟動腳本,如文檔中所述。

Erlydtl沒有應用程序行為,它的工作方式類似於庫。 正如您在erlydtl示例中所看到的,不需要啟動應用程序。

https://github.com/evanmiller/erlydtl#template-compilation

檢查一下:

erl -pa ebin deps / * / ebin

1> erlydtl:compile(<<“{{foo}}”>>,my_module_name)。

它有效嗎?

我喜歡escriptize rebar選項來創建可執行文件。

實際上-s選項無處不在。 只需使用erl NOT werl werl命令嘗試在Windows上加載GUI。

BitRock Install Builder是一個很棒的工具,您需要檢查。 用Erlang編寫的Yaws Web Server ,使用它和許多其他應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM