如何在 Windows 上获得 ar

How to get ar on Windows

我正在尝试在 windows 上使用 cabal(使用 chocolatey 安装),它正在寻找“ar”,这是一个 GNU 实用程序,但我不知道如何安装它。

# In powershell or git bash
git clone https://github.com/haskell/text
cd text
cabal build --with-gcc=msys2

错误消息摘录(是的,我有意使用 8.2.2,-w ghc-8.2.2):

Failed to build call-stack-0.4.0.
Build log (
C:\cabal\logs\ghc-8.2.2\call-stack-0.4.0-99b0801375eba6b85bc1a82c10630c85f20debfa.log
):
Preprocessing library for call-stack-0.4.0..
Building library for call-stack-0.4.0..
[1 of 3] Compiling Data.SrcLoc      ( src\Data\SrcLoc.hs, dist\build\Data\SrcLoc.o )
[2 of 3] Compiling Data.CallStack   ( src\Data\CallStack.hs, dist\build\Data\CallStack.o )
[3 of 3] Compiling Paths_call_stack ( dist\build\autogen\Paths_call_stack.hs, dist\build\Paths_call_stack.o )
cabal.exe: The program 'ar' is required but it could not be found.



(and a whole lot more identical errors for other packages)

您可能需要安装 GCC,据我通过查看我机器上的 MSYS2 设置可以看出,最初的 MSYS2 安装似乎没有附带 GCC。这将通过 pacman 在 MSYS shell 上完成(参见 the MSYS2 wiki 了解 MSYS2 shells 和子系统的入门):

# Updates the package database and the currently installed packages.
# If the shell closes at the end of the update, reopen it and rerun.
pacman -Syu
# Installs gcc.
pacman -S mingw-w64-x86_64-gcc

特别是,ar 作为 mingw-w64-x86_64-binutils 的一部分安装,它是 mingw-w64-x86_64-gcc 的依赖项。

补充说明:

  • GCC 将安装到您的 MSYS2 根目录下的 mingw64\bin。您可能想将该位置添加到您的路径中。

  • ,如果您通过 Chocolatey 管理工具,choco install mingw 将设置基本的 MinGW 开发工具链,其中包括 GCC。