繁体   English   中英

elixir中的函数未定义(混合测试)

[英]function is undefined in elixir (mix test)

我正在尝试在Xubuntu 16.04上安装IElixir Jupyter笔记本内核。 我之前在使用Xubuntu 16.04的另一台机器上成功完成了它。

我有最新的erlang otp 19.3和elixir 1.4.4(使用kiex安装)。

执行mix test我得到一个关于undefined的错误:erlzmq_nif.context/1函数:

** (Mix) Could not start application ielixir: exited in: IElixir.start(:normal, [])
    ** (EXIT) an exception was raised:
        ** (UndefinedFunctionError) function :erlzmq_nif.context/1 is undefined (module :erlzmq_nif is not available)
            :erlzmq_nif.context(1)
            (ielixir) lib/ielixir.ex:13: IElixir.start/2
            (kernel) application_master.erl:273: :application_master.start_it_old/4

事情就是所有依赖项都已成功安装,我可以在iex使用:erlzmq_nif.context/1

iex(1)> :erlzmq_nif.context 1
{:ok, ""}
iex(2)> 

我已将我的erlzmq构建复制到/usr/lib/erlang/lib以便我也可以在erlang中使用它:

1> erlzmq_nif:context(3).
{ok,<<>>}
2> 

使用mix时,为什么elix不能看到这个lib?

我没有解决问题,我已经设法让IElixir工作。

我所做的是替换:erlzmq在依赖mix.exsgithub: "zeromq/erlzmq" (注意不是2在回购名称)可能不会跑赢大市erlzmq2因为它不是基于NIF,但至少它的工作原理没有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM