Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 无法加载Erlang包_Elixir_Phoenix Framework_Elixir Mix - Fatal编程技术网

Elixir 无法加载Erlang包

Elixir 无法加载Erlang包,elixir,phoenix-framework,elixir-mix,Elixir,Phoenix Framework,Elixir Mix,我试图在我的Phoenix项目中使用Erlang包(这个:),所以我只是想从我的mix文件中获取它: defp deps do [{:phoenix, "~> 1.3.0-rc"}, {:phoenix_pubsub, "~> 1.0"}, {:phoenix_ecto, "~> 3.2"}, {:postgrex, ">= 0.0.0"}, {:gettext, "~> 0.11"}, {:cowboy

我试图在我的Phoenix项目中使用Erlang包(这个:),所以我只是想从我的mix文件中获取它:

  defp deps do
    [{:phoenix, "~> 1.3.0-rc"},
     {:phoenix_pubsub, "~> 1.0"},
     {:phoenix_ecto, "~> 3.2"},
     {:postgrex, ">= 0.0.0"},
     {:gettext, "~> 0.11"},
     {:cowboy, "~> 1.0"},
     {:comeonin, "~> 3.0"},
     {:uuid, "~> 1.1"},
     {:timex, "~> 3.1"},
     {:timex_ecto, "~> 3.1"},
     {:porcelain, "~> 2.0"},
     {:qrcode, git: "https://github.com/komone/qrcode"}, # <--
     {:credo, "~> 0.7", only: [:dev, :test]}]
  end
还有其他步骤可以让它工作吗?

编辑

我下面的例子是在Elixir项目中包含Erlang源代码,而不是像问题所问的那样作为依赖项。我将这篇文章留在这里,以防它能帮助其他人如何编译他们的Erlang代码

我已经做了一段时间了,但回顾以前的项目,我在我的
mix.exs
文件中看到了以下内容:

def project do
  [ app: :mdse,
    # ...
    erlc_paths: ["./lib/mdse/rpc/src", "src"]
  ]
end
这会让它通过mix自动编译


在查看了您提供的
qrcode
的源代码后,它不是一个应用程序。因此,我不相信您可以将其添加到
应用程序:
列表中。相反,您应该能够将其用作任何Erlang库,如
:qrcode.encode(…)

刚刚找到了方便的混合选项来传递:

{:qrcode, git: "https://github.com/komone/qrcode", app: false}
以防止Mix尝试加载包应用程序文件

注意:您可以使用
:compile
选项来摆脱EmakFile包的手动编译,在这种情况下:

{:qrcode, git: "https://github.com/komone/qrcode", app: false, compile: "erl -make"}

:qrcode未在mix文件的“我的应用程序”中列出,但mix似乎仍在默认情况下尝试将其作为应用程序加载。@Kerneel感谢您的分享。我以前从未尝试过使用依赖项中的非应用程序。你可能在将来为我节省了一些令人挠头的时间。我想这也解决了
erlcu路径的问题。我刚刚意识到我下面的例子是为了在我的项目中包含Erlang代码,而不是作为依赖项。
{:qrcode, git: "https://github.com/komone/qrcode", app: false, compile: "erl -make"}