VScode mix.exs 错误 - 无法使用“make”编译
VScode mix.exs error - Could not compile with “make”
背景
我有一个 umbrella 应用程序,我正在使用烤盘为 windows 构建:
https://github.com/bake-bake-bake/bakeware
我遵循了 windows 的正常设置:
choco install -y zstandard make mingw
我已经通过他们的官方网站安装程序安装了 elixir 和 erlang otp:
问题
我能够 运行 并正常执行所有操作,但是我的 VSCode 将我的 mix.exs
文件标记为一个巨大的红色错误块:
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 的页面中有一个部分:
Change the default MAKE
environment variable used by elixir_make
from nmake
to make
(set it permanently to get rid of the errors in VSCode)
- 但是我该怎么做呢?
- 我的 VSCode 设置有问题吗?
elixir_make
docs 说要将 mix.exs
中的 make_executable
设置为系统上安装的 make
命令。
然后在您的 shell 中设置 Windows Way (If you already set the environment variables but they aren't taking, you may need to restart your terminal or VS Code), or if you're using bash
, you can put them in your .bash_profile
as the bakeware
docs 显示的环境变量。
命令提示符:
set MAKE=make
set CC=gcc
或 MinGW
export MAKE=make
export CC=gcc
mix release
回答
我以某种方式解决了这个问题。
Bakeware,依赖项,真的 喜欢 Powershell。但不是任何powershell。具有管理员权限的 powershell。
要消除警告,必须在 VSCode 处于 关闭 时执行以下步骤:
- 在管理员模式下打开Windows Powershell
- 设置
$env:CC="gcc"
- 设置
$env:MAKE="make"
- 设置
MIX_ENV
为某物。不一定非得是prod
,但是由于powershell默认没有设置这个值,所以要自己手动设置。在 运行 测试之前,获取依赖项或任何东西。
mix deps.get
此后如果还是出现死亡红墙,尝试删除你的.elixir_ls
文件夹强制重试。
然后用code .
打开VSCode
希望它对你有用,对我也有用。
用任何其他终端尝试此操作将导致看到红色的死亡之墙。根据我的实验,powershell 是唯一有效的。
背景
我有一个 umbrella 应用程序,我正在使用烤盘为 windows 构建: https://github.com/bake-bake-bake/bakeware
我遵循了 windows 的正常设置:
choco install -y zstandard make mingw
我已经通过他们的官方网站安装程序安装了 elixir 和 erlang otp:
问题
我能够 运行 并正常执行所有操作,但是我的 VSCode 将我的 mix.exs
文件标记为一个巨大的红色错误块:
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 的页面中有一个部分:
Change the default
MAKE
environment variable used byelixir_make
fromnmake
tomake
(set it permanently to get rid of the errors in VSCode)
- 但是我该怎么做呢?
- 我的 VSCode 设置有问题吗?
elixir_make
docs 说要将 mix.exs
中的 make_executable
设置为系统上安装的 make
命令。
然后在您的 shell 中设置 Windows Way (If you already set the environment variables but they aren't taking, you may need to restart your terminal or VS Code), or if you're using bash
, you can put them in your .bash_profile
as the bakeware
docs 显示的环境变量。
命令提示符:
set MAKE=make
set CC=gcc
或 MinGW
export MAKE=make
export CC=gcc
mix release
回答
我以某种方式解决了这个问题。 Bakeware,依赖项,真的 喜欢 Powershell。但不是任何powershell。具有管理员权限的 powershell。 要消除警告,必须在 VSCode 处于 关闭 时执行以下步骤:
- 在管理员模式下打开Windows Powershell
- 设置
$env:CC="gcc"
- 设置
$env:MAKE="make"
- 设置
MIX_ENV
为某物。不一定非得是prod
,但是由于powershell默认没有设置这个值,所以要自己手动设置。在 运行 测试之前,获取依赖项或任何东西。 mix deps.get
此后如果还是出现死亡红墙,尝试删除你的.elixir_ls
文件夹强制重试。
然后用code .
希望它对你有用,对我也有用。 用任何其他终端尝试此操作将导致看到红色的死亡之墙。根据我的实验,powershell 是唯一有效的。