我正在回到三年前停止工作的一个旧凤凰项目。在尝试编译它时,我一直遇到一个错误,整个下午都无法解决。
== Compilation error in file lib/mppm/game_server/server_config.ex ==
** (ArgumentError) lib file xmerl-2.0/include/xmerl.hrl could not be found
(elixir 1.17.2) lib/record/extractor.ex:41: Record.Extractor.from_lib_file/1
(elixir 1.17.2) lib/record/extractor.ex:18: Record.Extractor.from_or_from_lib_file/1
(elixir 1.17.2) lib/record/extractor.ex:5: Record.Extractor.extract/2
lib/mppm/game_server/server_config.ex:9: (module)
罪魁祸首是:
defrecord(:xmlElement, extract(:xmlElement, from_lib: "xmerl/include/xmerl.hrl"))
我使用 asdf 安装了 Elixir (1.17) 和 Erlang/OTP (27.0.1)。我检查了 erlang 库所在的路径(
.asdf/installs/erlang/27.0.1/lib/
)。 “xmerl”显示为“xmerl-2.0”,所以我尝试更正它,但没有成功。我尝试了绝对路径和几乎所有的东西,包括天真地删除 from_lib 参数,仍然没有运气。
我在这里缺少什么?我确信这很愚蠢,但我已经被困了几个小时了......
谢谢!