Erlang, Rebar si Windows

Categorii: Programare

16-Jan-2017 16:00 - 581 vizionari

De cateva zile incerc sa construiesc aplicatii Erlang cu ajutorul utilitarului rebar: generez o aplicatie din lista de exemple (sabloane) rebar, o editez sa corespunda cu proiectele mele, apoi o compilez automat cu rebar impreuna cu aplicatiile de care depinde. (Nu imi place rebar3, inca nu sunt pregatit sa-l inteleg.)

Teoretic, orice aplicatie Erlang construita cu rebar in windows se compileaza si se executa cu:


@echo off

rem pentru obtinerea modulelor externe de care depinde aplicatia
escript rebar get-deps

rem pentru compilarea aplicatiei
escript rebar compile

rem pentru pornirea aplicatiei – comanda care merge bine numai in Unix si Linux
erl -noshell -pa deps/*/ebin -pa ebin -run numele_aplicatiei

Pentru Linux comenzile sunt asemanatoare (./rebar get-deps && ./rebar compile … sau rebar get-deps && rebar compile …)

Problema este ca primesc la executia aplicatiei o eroare (no error logger present), eroarea apare numai in windows, sunt aproximativ 600 de referinte si nici o solutie functionala: Google: "(no error logger present)" sau cu Duckduckgo: "(no error logger present)"

Solutia am gasit-o dupa 3-4 zile de cautari frustrante: trebuie sa construiesc corect calea de cautare a modulelor Erlang.

Program pentru windows care executa corect o aplicatie Erlang compilata cu rebar:


@echo off
rem mai intai compilez ce s-a modificat intre timp
escript rebar compile
echo.
echo.
echo.

rem apoi construiesc calea de cautare a modulelor
SET DEPSPATH=-pa ebin
FOR /f %%a IN ('dir /b deps\') do call :add_path %%a

rem si execut aplicatia
erl -noshell %DEPSPATH% -run numele_aplicatiei

rem pauza sa vad daca avem erori
pause
goto :eof

:add_path
	rem o subrutina de cmd windows
	SET DEPSPATH=%DEPSPATH% -pa deps/%1/ebin
	goto :eof


Pentru fiecare folder-de-aplicatie din folderul deps trebuie adaugata calea catre folderul de module binare (ebin).

Pentru Linux este suficient: erl -noshell -pa deps/*/ebin -pa ebin -run numele_aplicatiei



Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric



Contorizari incepand cu 9 iunie 2014:
Flag Counter

Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.