Elixir 找不到 erlang 库

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

我正在回到三年前停止工作的一个旧凤凰项目。在尝试编译它时,我一直遇到一个错误,整个下午都无法解决。

== 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 参数,仍然没有运气。

我在这里缺少什么?我确信这很愚蠢,但我已经被困了几个小时了......

谢谢!

erlang elixir phoenix-framework
1个回答
0
投票

v1.15
起, 编译器会在不需要时修剪代码路径。 核心就受此困扰。

将以下行添加到

project/0
mix.exs
回调中。

def project do
  [
    …
    prune_code_paths: Mix.env() == :prod,
    …
  ]
© www.soinside.com 2019 - 2024. All rights reserved.