Erlang 程序可以在 erlang20 上运行,但不能在 erlang24 上运行

问题描述 投票:0回答:1

Stack Overflow 社区您好,

我们有一个在 Erlang 20 上完美运行的 Erlang 项目,但在尝试使用 Erlang 24 运行它时遇到了问题。我们已经审查了这些版本之间的更改,但我们正在努力查明问题的确切原因问题。

我们的项目可以在这个公共 GitHub 存储库中找到: https://github.com/omayerg/Traffic-Management-System-in-Erlang/tree/main

我们怀疑问题出在通信初始化中,我们就是这样做的:

start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
start() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
start(NODE1,NODE2,NODE3,NODE4,Master) -> gen_server:start_link({local, ?SERVER}, ?MODULE, [NODE1,NODE2,NODE3,NODE4,Master], []).

这是我们迄今为止尝试过的:

编译:我们已经在 Erlang 20 和 Erlang 24 中成功编译了代码,没有任何错误。

日志:不幸的是,日志没有提供对该问题的深入了解。该应用程序在 Erlang 24 中启动,但某些功能无法按预期工作,这与 Erlang 20 不同。

差异:我们比较了 Erlang 24 的发行说明和文档,但我们尚未发现任何直接影响我们项目的具体更改。

错误:

erlang wxwidgets communication erlang-otp gen-server
1个回答
0
投票

我能够在 Erlang 24 下运行它。我需要做的唯一更改是

src/header.hrl
:节点名称是硬编码的,包括 IP 地址。我把它改为:

-define(Master,'[email protected]').
-define(NODE1, '[email protected]').
-define(NODE2, '[email protected]').
-define(NODE3, '[email protected]').
-define(NODE4, '[email protected]').

然后我用

erl -name [email protected]
等启动每个节点,并重新编译代码。

请注意,节点名称区分大小写:如果您使用

[email protected]
等,则需要确保
header.hrl
中的名称匹配。

© www.soinside.com 2019 - 2024. All rights reserved.