【问题标题】:VScode mix.exs error - Could not compile with “make”VScode mix.exs 错误 - 无法使用“make”编译
【发布时间】:2022-01-25 02:59:19
【问题描述】:

背景

我有一个伞式应用程序,我正在使用烤盘为 Windows 构建: https://github.com/bake-bake-bake/bakeware

我已按照 Windows 的正常设置进行操作:

choco install -y zstandard make mingw

我已经通过他们的官网安装程序安装了 elixir 和 erlang otp:

问题

我能够正常运行和执行所有操作,但是我的 VSCode 将我的 mix.exs 文件标记为一个巨大的红色错误 blob:

an exception was raised:
    ** (Mix.Error) Could not compile with "make" (exit status: 2).

        (mix 1.13.1) lib/mix.ex:515: Mix.raise/2
        (elixir_make 0.6.3) lib/mix/tasks/compile.make.ex:154: Mix.Tasks.Compile.ElixirMake.run/1
        (mix 1.13.1) lib/mix/task.ex:397: anonymous fn/3 in Mix.Task.run_task/3
        (mix 1.13.1) lib/mix/tasks/compile.all.ex:92: Mix.Tasks.Compile.All.run_compiler/2
        (mix 1.13.1) lib/mix/tasks/compile.all.ex:72: Mix.Tasks.Compile.All.compile/4
        (mix 1.13.1) lib/mix/tasks/compile.all.ex:59: Mix.Tasks.Compile.All.with_logger_app/2
        (mix 1.13.1) lib/mix/tasks/compile.all.ex:36: Mix.Tasks.Compile.All.run/1
        (mix 1.13.1) lib/mix/task.ex:397: anonymous fn/3 in Mix.Task.run_task/3ElixirLS

问题

在 Bakeware 的页面中有一个部分:

elixir_make使用的默认MAKE环境变量从nmake更改为make(永久设置以消除VSCode中的错误)

  • 但是我该怎么做呢?
  • 我的 VSCode 设置有问题吗?

【问题讨论】:

  • 路径中有make吗?如果您刚刚安装它,则可能需要重新加载会话。
  • 如何将其添加到 VSCode 的路径中?
  • 我已经用更多信息更新了这个问题。如果我了解如何设置系统的 var,那应该很好。

标签: visual-studio-code elixir


【解决方案1】:

elixir_make docs 表示将mix.exs 中的make_executable 设置为系统上安装的make 命令。

然后在您的 shell 中,将环境变量设置为 Windows Way(如果您已经设置了环境变量但它们没有使用,您可能需要重新启动终端或 VS Code),或者如果您正在使用bash,您可以将它们作为bakeware docs 显示在您的.bash_profile 中。

命令提示符:

set MAKE=make
set CC=gcc

或MinGW

export MAKE=make
export CC=gcc
mix release

【讨论】:

【解决方案2】:

回答

我能够以某种方式解决这个问题。 Bakeware,依赖项,真的喜欢 Powershell。但不是任何powershell。具有管理员权限的 powershell。 要消除警告,必须在 VSCode 关闭时执行以下步骤:

  1. 以管理员模式打开 Windows Powershell
  2. 设置$env:CC="gcc"
  3. 设置$env:MAKE="make"
  4. MIX_ENV 设置为某事。不一定非要prod,但是由于powershell默认不设置这个值,所以要自己手动设置。在运行测试之前,获取依赖项或其他任何东西。
  5. mix deps.get

在此之后,如果您仍然获得死亡红墙,请尝试删除您的.elixir_ls文件夹以强制再次进入。 然后用code .打开VSCode

希望它对你有用,它对我有用。 用任何其他终端尝试此操作将导致看到红色的死亡之墙。根据我的实验,powershell 是唯一有效的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多