[英]Running mix deps.get throws :erlang.binary_to_atom argument error
I'm building a Nerves project and am attempting to verify my custom firmware will be built with the main Nerves application following the instructions here . 我正在构建一个Nerves项目,并尝试按照此处的说明使用主Nerves应用程序来构建我的自定义固件。 I've set up a UI project with Phoenix and have the custom image in its own directory under a project directory.
我已经用Phoenix设置了一个UI项目,并将自定义图像放在项目目录下它自己的目录中。 The main Nerves project is here and the custom firmware is here I've set my MIX_TARGET equal to the custom image name (rpi0_wiringPi) and when running:
Nerves主项目在这里 ,自定义固件在这里,我将MIX_TARGET设置为与自定义映像名称(rpi0_wiringPi)相同,并且在运行时:
mix deps.get
I get the error 我得到错误
* (ArgumentError) argument error
:erlang.binary_to_atom(nil, :utf8)
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5
(stdlib) erl_eval.erl:233: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
And now anything I do regarding mix in that directory throws the same error including mix help. 现在,我对该目录中的混合所做的任何操作都会引发相同的错误,包括混合帮助。 That would tell me something is amiss in the mix.exs file for that project but it's below and appears fine to me
那会告诉我该项目的mix.exs文件中有什么不对劲,但它在下面,对我来说似乎还不错
defmodule Fw.MixProject do
use Mix.Project
@target System.get_env("MIX_TARGET") || "host"
def project do
[
app: :fw,
version: "0.1.0",
elixir: "~> 1.4",
target: @target,
archives: [nerves_bootstrap: "~> 1.0"],
deps_path: "deps/#{@target}",
build_path: "_build/#{@target}",
lockfile: "mix.lock.#{@target}",
start_permanent: Mix.env() == :prod,
aliases: [loadconfig: [&bootstrap/1]],
deps: deps()
]
end
# Starting nerves_bootstrap adds the required aliases to Mix.Project.config()
# Aliases are only added if MIX_TARGET is set.
def bootstrap(args) do
Application.start(:nerves_bootstrap)
Mix.Task.run("loadconfig", args)
end
# Run "mix help compile.app" to learn about applications.
def application do
[
mod: {Fw.Application, []},
extra_applications: [:logger, :runtime_tools]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:nerves, "~> 1.3", runtime: false},
{:nerves_network, "~> 0.3"},
{:ui, path: "../ui"},
{:shoehorn, "~> 0.2"}
] ++ deps(@target)
end
# Specify target specific dependencies
defp deps("host"), do: []
defp deps(target) do
[
{:nerves_runtime, "~> 0.8"}
] ++ system(target)
end
defp system("rpi"), do: [{:nerves_system_rpi, "~> 1.0", runtime: false}]
defp system("rpi0"), do: [{:nerves_system_rpi0, "~> 1.0", runtime: false}]
defp system("rpi0_wiringPi"), do: [{:nerves_system_rpi0_wiringPi, path: "../nerves_system_rpi0_wiringPi", runtime: false}]
defp system("rpi2"), do: [{:nerves_system_rpi2, "~> 1.0", runtime: false}]
defp system("rpi3"), do: [{:nerves_system_rpi3, "~> 1.0", runtime: false}]
defp system("bbb"), do: [{:nerves_system_bbb, "~> 1.0", runtime: false}]
defp system("ev3"), do: [{:nerves_system_ev3, "~> 1.0", runtime: false}]
defp system("qemu_arm"), do: [{:nerves_system_qemu_arm, "~> 1.0", runtime: false}]
defp system("x86_64"), do: [{:nerves_system_x86_64, "~> 1.0", runtime: false}]
defp system(target), do: Mix.raise("Unknown MIX_TARGET: #{target}")
end
This is the directory structure: 这是目录结构:
clicky
fw
ui
nerves_system_rpi0_wiringPi
Since mix is throws the error no matter what I do, I cannot get any assistance from it. 由于混合无论如何都会引发错误,因此我无法从中获得任何帮助。 Is there a way to have mix write a log of what it's doing or something else that would help me troubleshoot the issue?
有没有一种方法可以让混合记录日志记录正在执行的操作或其他可以帮助我解决问题的方法?
I also ran into this error. 我也遇到了这个错误。 Turns out not to have been a problem with mix.exs.
原来不是mix.exs的问题。 I had neglected to set the Nerves networking environment variables(NERVES_NETWORK_SSID, NERVES_NETWORK_PSK and NERVES_NETWORK_MGMT) in config.exs.
我忽略了在config.exs中设置Nerves网络环境变量(NERVES_NETWORK_SSID,NERVES_NETWORK_PSK和NERVES_NETWORK_MGMT)。 Once I fixed that 'mix deps.get' worked.
一旦我修复了“ mix deps.get”,它就会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.