#erlang
#эрланг #erlang
Вопрос:
Я изучаю один проект с открытым исходным кодом, домашняя страница находится здесь: https://github.com/kevsmith/gen_nb_server Я обнаружил, что структура проекта является
src/
gen_nb_server.erl
priv/
example
src/
example.erl
когда я захожу в папку example и запускаю «make», и запускаю модуль example с помощью «example:start_link().», он не может найти модуль gen_nb_server, я хочу знать, как вызвать модуль, который не находится в той же папке? Спасибо!
Ответ №1:
Вы можете использовать -pa (или -pz), чтобы добавить каталоги ebin верхнего уровня и priv/ example / ebin в начало (или конец) вашего пути к коду.
# erl -pa gen_nb_server/ebin -pa gen_nb_server/priv/example/ebin
[...]
1> example:start_link().
{ok,<0.33.0>}
Комментарии:
1. спасибо!, не могли бы вы сказать мне, как вы получаете каталог «gen_nb_server / ebin»? Я всего лишь новичок
2. это означает, где находится каталог-«gen_nb_server/ebin», я не могу его найти
3. это был псевдоним, который он использовал для папки вашего проекта. То, что вы пишете после
-pa
, является обычным путем, который указывает на каталог, в котором находятся файлы beam.
Ответ №2:
В дополнение к тому, что упоминал butter71.. вы можете загружать код, находясь в самой оболочке…
1> код:add_path("gen_nb_server/ebin").
вы также можете использовать code:add_patha
или code:add_pathz
для загрузки файлов beam в начале или конце списка путей..