如何在Windows上修复“无法编译依赖:bcrypt_elixir”错误?

时间:2018-03-24 23:59:19

标签: cygwin elixir phoenix-framework mix elixir-framework

我在Windows上,我正在尝试安装bcrypt_elixir模块。

我收到以下错误:

$ mix phx.server
==> bcrypt_elixir
could not compile dependency :bcrypt_elixir, "mix compile" failed. You can recompile this dependency with "mix deps.compile bcrypt_elixir", update it with "mix deps.update bcrypt_elixir" or clean it with "mix deps.clean bcrypt_elixir"
** (Mix) "nmake" not found in the path. If you have set the MAKE environment variable,
please make sure it is correct.

以下是错误的终端屏幕截图:

Error

以下是来自deps的{​​{1}}函数:

mix.exs

6 个答案:

答案 0 :(得分:2)

bcrypt_elixir使用Windows'NMake(参见bcrypt_elixir的Makefile.win)。

好像你没有安装NMake。

来自NMake's documentation

  

安装Visual Studio或Visual C ++命令行构建工具时包含NMAKE。它不是单独提供的。

所以你需要download Visual Studio才能获得NMake。然后你应该能够编译bcrypt_elixir。

如果您已有NMake ,请确保nmake.exe位于path的目录下。

答案 1 :(得分:1)

实际上看得更近一点,因为你正在运行Cygwin并尝试在Cygwin下构建bcrypt,nmake甚至没有进入问题。您需要在Cygwin中安装make。重新运行cygwin安装程序,选择Devel类别,然后在Devel中查找make。

编辑:

好的,所以如果我不得不猜测我要么说你需要

a。)停止尝试在Cygwin提示下构建所有内容 - 如果bcrypt_elixir在Windows上检测到它,它将寻找nmake和nmake不是Cygwin的一部分

您没有说明您是如何寻找nmake的,但如果我是您,我会在C:\Program Files (x86)目录中尝试此操作。

dir /s nmake.exe

请注意,从Windows cmd提示符运行它 - 它不会在Cygwin shell中运行!

b。)以某种方式设置bcrypt_elixir在Linux上认为它所以它寻找make(与nmake不同)。

基本上我认为最简单的答案是尝试从普通的Windows cmd提示符运行mix phx.server然后从那里开始。或者,如果您需要Linux,则安装虚拟机并将Linux VM放在计算机上并按此方式继续。

答案 2 :(得分:1)

在我的长生不老药项目的酿酒厂设置过程中,我遇到了同样的问题。

安装软件包解决问题,如下所示。

我发现bcrypt_elixir需要从Elixir论坛安装make和build-essential。

平台:-Ubuntu

$ sudo apt install make

$ sudo apt-get install build-essential

答案 3 :(得分:1)

在Windows 10中,必须将NMAKE添加到路径中 enter image description here

此后,您可以运行mix deps.compile,直到看到如下消息: enter image description here

之后,您必须按照nmake的建议运行cmd:

cmd /K "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

在cmd上运行此命令,然后正常运行mix deps.compile

答案 4 :(得分:0)

我发现,它是在Windows上运行的最新版本的erlang OTP,版本21, 那是造成问题的原因。我卸载了该版本,然后转到版本20(安装erlang 9.3和Elixir的最新版本,然后在编译时查找该版本),然后bcrypt_elixir编译了所有

答案 5 :(得分:0)

对于Visual Studio 2019(VS2019):

cmd /K "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64