erlang rebar3无法加载编译的文件

rjee0c15  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(276)

我已经使用reabr3创建了一个应用程序来练习RabbitMQ,但是rebar3无法将我在src文件夹中创建的附加文件加载到erlang shell。
我使用了rebar3 new app rabbit。我在src/目录中有rabbit_app.erl rabbit_sup.erl and rabbit.app.src和一个新定义的名为hello_world.erl的文件。我运行rebar3 compile进行编译并获得依赖项。
然后运行rebar3 shell,以便能够测试hello_world.erl中的函数。hello_world.beam无法加载,因此我必须在erlang shell中手动使用c(hello_world)。有点不方便。
任何帮助都将不胜感激。下面是rebar3 compilerebar3 shell的控制台输出。

$ rebar3 compile
===> Verifying dependencies...
===> Fetching amqp_client v3.8.14
===> Fetching rabbit_common v3.8.7
===> Fetching credentials_obfuscation v2.2.0
===> Fetching jsx v2.11.0
===> Fetching lager v3.8.0
===> Fetching ranch v1.7.1
===> Fetching recon v2.5.1
===> Fetching goldrush v0.1.9
===> Analyzing applications...
===> Compiling credentials_obfuscation
===> Compiling goldrush
===> Compiling jsx
===> Compiling lager
===> Compiling ranch
===> Compiling recon
===> Compiling rabbit_common
===> Compiling amqp_client
===> Analyzing applications...
===> Compiling rabbit

$ rebar3 shell
===> Verifying dependencies...
===> Analyzing applications...
===> Compiling rabbit
Erlang/OTP 22 [erts-10.7.2.1] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [hipe]

Eshell V10.7.2.1  (abort with ^G)
1> ===> Booted xmerl
===> Booted compiler
===> Booted sasl
===> Booted syntax_tools
===> Booted tools
===> Booted goldrush
===> Booted lager
===> Booted jsx
===> Booted ranch
===> Booted recon
===> Booted credentials_obfuscation
===> Booted rabbit_common
===> Booted amqp_client
===> Booted rabbit

[UPDATE]我发现新添加的文件已加载,但这些文件的自动完成功能不起作用。我不得不第一次使用整个命令。

bihw5rsg

bihw5rsg1#

rebar3.beam文件组织在src目录之外的目录中。当您发出命令c(hello_world)时,.beam文件被放置在当前目录中。显然,当当前目录是src/目录时,您正在发出rebar3命令。这不是rebar3的工作方式。当你发出rebar3 compilerebar3 shell这样的rebar3命令时,你需要在rabbit/目录下,也就是app的顶层目录下。

相关问题