Используйте крипто в эрланге escript

У меня есть проект erlang, и я собираюсь сгенерировать для него автономный скрипт erlang, для этого я использовал арматуру escriptize, добавив в него все зависимости в моем rebar.conf и некоторые другие опции, как вы можете видеть

{erl_opts, [{parse_transform, lager_transform}]}.
{lib_dirs,["deps"]}.

{deps, [
{'lager', ".*", {
  git, "git://github.com/basho/lager.git", {tag, "2.0.0"}}
},
{'cowboy', ".*", {
    git, "git://github.com/ninenines/cowboy.git", {tag, "2.0.0-pre.1"}}
},
{'jsx', ".*", {
    git, "git://github.com/talentdeficit/jsx.git", {tag, "v2.0.4"}}
}
]}.


{escript_emu_args, "%%! -smp auto\n"}.
{escript_emu_args, "%%! -pz ../dir-of-some-beams\n"}.
{escript_name, "multiscreen_ws_app"}.
{escript_incl_apps,   [sasl,stdlib,kernel,ranch,crypto,cowlib,cowboy,asn1,public_key,ssl,jsx,compiler    ,syntax_tools,lager,goldrush]}.

и, конечно, я создал метод main в своем главном модуле для запуска скрипта. Когда я запускаю сценарий generetaed с помощью команды escript multiscreen_ws_app, я вижу вывод своей программы очень хорошо, но когда я получаю свою первую страницу веб-сокета и пытаюсь расшифровать ее BAM, она просто не работает, и я получаю сообщение:

17:03:30.222 [error] Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library c:/Users/alessandro.herculano/Music/mul
tiscreen_ws_app/crypto/priv/lib/crypto: 'Couldn't load the specified method
ecificado.'"
OpenSSL might not be installed on this system.

Любопытно, что он пытается найти в моем файле сценария, как будто это была папка! c:/Users/alessandro.herculano/Music/multiscreen_ws_app/crypto/priv/lib/crypto, но multiscreen_ws_app - мой файл сценария! что я могу сделать, чтобы мой сценарий искал его в другом заранее определенном месте?

------- Некоторые моменты, которые могут быть важны ----

  • Я использую его на компьютере с Windows 8 x64
  • Когда я запускаю его без использования скрипта, мое приложение работает нормально
  • Я уже пытался использовать код:add_pathz вверху моего основного, указывающего папку crypto, но он тоже не работал.

1 ответ

Решение

Только что найденное решение, моя вина, просто удаление "crypto" из списка escript_incl_apps решает проблему.

Другие вопросы по тегам