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

通过Chocolatey安装后nmake无法工作,Elixir开发环境搭建求助

解决Windows下Elixir开发环境搭建的nmake及VS环境配置问题

我正在搭建Elixir开发环境,选用Chocolatey作为包管理器,参考了其他项目开发者的经验。目前已通过以下命令安装两个包:

choco install visualstudio2022community
choco install visualstudio2022buildtools

查询可用的VS2022相关包时,发现有大量选项,不确定是否因缺少部分包导致问题:

C:\Windows\System32>choco search visualstudio2022
Chocolatey v2.1.0
visualstudio2022buildtools 117.6.3 [Approved]
visualstudio2022community 117.6.3 [Approved]
visualstudio2022enterprise 117.6.3 [Approved]
visualstudio2022professional 117.6.3 [Approved]
visualstudio2022-remotetools 17.0.33103.184 [Approved] Downloads cached for licensed users
visualstudio2022teamexplorer 117.6.3 [Approved]
visualstudio2022testagent 117.6.3 [Approved]
visualstudio2022testcontroller 117.6.3 [Approved]
visualstudio2022-workload-azure 1.0.0 [Approved]
visualstudio2022-workload-azurebuildtools 1.0.0 [Approved]
visualstudio2022-workload-data 1.0.0 [Approved]
visualstudio2022-workload-databuildtools 1.0.0 [Approved]
visualstudio2022-workload-datascience 1.0.1 [Approved]
visualstudio2022-workload-manageddesktop 1.0.1 [Approved]
visualstudio2022-workload-manageddesktopbuildtools 1.0.0 [Approved]
visualstudio2022-workload-managedgame 1.0.0 [Approved]
visualstudio2022-workload-nativecrossplat 1.0.0 [Approved]
visualstudio2022-workload-nativedesktop 1.0.0 [Approved]
visualstudio2022-workload-nativegame 1.0.0 [Approved]
visualstudio2022-workload-nativemobile 1.0.0 [Approved]
visualstudio2022-workload-netcrossplat 1.0.0 [Approved]
visualstudio2022-workload-netweb 1.0.0 [Approved]
visualstudio2022-workload-node 1.0.0 [Approved]
visualstudio2022-workload-nodebuildtools 1.0.0 [Approved]
visualstudio2022-workload-office 1.0.0 [Approved]
visualstudio2022-workload-officebuildtools 1.0.0 [Approved]
visualstudio2022-workload-python 1.0.0 [Approved]
visualstudio2022-workload-universal 1.0.0 [Approved]
visualstudio2022-workload-universalbuildtools 1.0.0 [Approved]
visualstudio2022-workload-vctools 1.0.0 [Approved]
visualstudio2022-workload-visualstudioextension 1.0.0 [Approved]
visualstudio2022-workload-visualstudioextensionbuildtools 1.0.0 [Approved]
visualstudio2022-workload-webbuildtools 1.0.0 [Approved]
visualstudio2022-workload-xamarinbuildtools 1.0.0 [Approved]

当前核心问题:安装程序未自动配置正确的环境变量,导致nmake无法正常工作。系统中找到4个nmake.exe,但不确定该用哪一个。参考指南推荐WSL,但仅适用于Web服务器搭建,对客户端应用构建无帮助。希望尽量减少手动操作,简化安装步骤,也考虑切换到Winget。

已尝试的操作及问题

  1. 手动运行VS2022安装程序,仍无法解决环境变量配置困惑。
  2. 错误提示中的命令因引号问题无法执行:

C:\Users\tester\Projects\Elixir\my_app>cmd /K "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.

  1. 手动添加某个nmake路径到环境变量后,出现新错误:

** (Mix) Could not compile with "nmake" (exit status: 2).
One option is to install a recent version of
Visual C++ Build Tools
either manually or using Chocolatey -
choco install VisualCppBuildTools.

安装完成后,在「Program Files (x86)」目录下查找「Microsoft Visual Studio」,记下版本号最高的文件夹完整路径。打开「运行」对话框,输入以下命令(确保路径和版本号正确):

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

该命令会打开一个已配置好必要环境变量的命令提示符,在其中可执行mix compile、mix deps.compile和mix test命令。

  1. 尝试安装VisualCppBuildTools时,出现1603错误:

Exit code was '1603'. Exit code indicates the following: Generic MSI Error. This is a local environment error, not an issue with a package or the MSI itself - it could mean a pending reboot is necessary prior to install or something else (like the same version is already installed). Please see MSI log if available.)


解决方案

1. 修复vcvarsall.bat命令的引号问题

路径包含空格时,需要嵌套引号才能正确执行,正确命令格式为:

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

更简便的方法:直接打开「Visual Studio 2022 开发人员命令提示符」,它会自动配置好所有VC环境变量,无需手动执行脚本。

2. 确保安装了C++工具集工作负载

你当前安装的visualstudio2022buildtools默认可能未包含nmake所需的C++工具,需补充安装对应的工作负载:

choco install visualstudio2022-workload-vctools --package-parameters "--includeRecommended"

该包会安装完整的VC编译工具链,包括nmake、编译器及相关依赖。

3. 解决1603安装错误

  • 先重启电脑,清除系统中可能存在的挂起安装进程;
  • 检查是否已安装相同版本的组件,可通过「控制面板→程序和功能」卸载重复的Visual Studio相关条目;
  • 尝试强制重装包:
choco install visualstudio2022-workload-vctools --force --package-parameters "--includeRecommended"

4. 切换到Winget的替代方案

如果Winget更符合你的需求,可执行以下命令自动安装VS Build Tools及C++工具链:

winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive --norestart"

安装完成后,同样通过「Visual Studio 2022 开发人员命令提示符」运行Elixir编译命令即可。

5. 验证环境配置

在配置好环境的命令提示符中,执行以下命令验证nmake是否可用:

nmake /?
mix compile

若能正常输出nmake帮助信息且mix编译无错误,则环境配置成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:04:55