You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统下如何修复编译依赖:bcrypt_elixir失败的错误?

解决Windows下bcrypt_elixir编译失败("nmake" not found)的问题

Hey,这个坑我在Windows上跑Phoenix项目时踩过好几次!核心原因很简单:bcrypt_elixir需要编译原生的C扩展代码,而Windows默认没装nmake(微软的命令行构建工具),导致Mix没法完成依赖编译。下面给你几个靠谱的解决办法,按优先级来:

1. 安装Visual Studio构建工具(最推荐,一劳永逸)

这是最稳妥的方式,一次性搞定所有编译环境:

  • 先下载Visual Studio Installer(如果已经装过VS,直接打开它就行)
  • 在「工作负载」里找到「桌面开发使用C++」,一定要勾选这几个核心组件:「MSVC vxxx生成工具」、「Windows SDK」、「C++生成工具核心功能」(版本号根据你的VS版本调整,比如2022版就选对应2022的组件)
  • 安装完成后必须重启你的终端/命令提示符!不然新的环境变量不会生效
  • 回到项目目录,依次运行这几个命令:
    mix deps.compile bcrypt_elixir
    mix phx.server
    

2. 手动把nmake路径加入系统PATH(适合已装VS但环境未生效的情况)

如果已经装了Visual Studio还是报错,大概率是nmake.exe的路径没被系统识别:

  • 找到你的VS安装路径,比如默认路径是C:\Program Files\Microsoft Visual Studio\2022\Community\BuildTools\bin(根据你装的VS版本、版本类型调整,比如Professional版就把Community换成Professional)
  • 打开系统环境变量设置,把上面找到的路径添加到PATH列表中
  • 重启终端后,先测试nmake /?,如果能弹出帮助信息,说明路径配置成功
  • 然后清理旧依赖再重新编译:
    mix deps.clean bcrypt_elixir
    mix deps.get
    mix deps.compile bcrypt_elixir
    

3. 使用预编译的二进制版本(备选,适合不想装C++工具的情况)

要是实在不想装C++构建工具,可以试试预编译好的版本,但要注意版本兼容性:

  • 打开项目根目录的mix.exs,修改bcrypt_elixir的依赖配置(以下以3.0.0版本为例,记得对应你项目需要的版本):
    {:bcrypt_elixir, "~> 3.0", override: true, github: "riverrun/bcrypt_elixir", tag: "v3.0.0", precompiled: true}
    
  • 然后运行这两个命令:
    mix deps.get
    mix phx.server
    
    注意:预编译版本可能和你的Elixir/Erlang版本不兼容,所以优先推荐前两种方法。

小提示

  • 要是用PowerShell的话,尽量以管理员身份运行,避免权限不足的问题
  • 编译前可以先清空所有依赖缓存:mix deps.clean --all,再重新获取依赖,有时候能解决奇怪的缓存冲突问题

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:40:41