[英]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.