Msys2のclangを9.0から12.0に更新する

Msys2 (64bit)のclangを9.0から12.0に更新する手順


Msys2上のパッケージ管理ソフトpacmanを使用して、最新のclangパッケージ (mingw-w64-x86_64-clang)のインストールを試みます

(pacmanコマンドでPGP鍵のエラーが発生した場合の対処方はこちら)

$ pacman -S mingw-w64-x86_64-clang
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing mingw-w64-x86_64-llvm (12.0.1-1) breaks dependency 'mingw-w64-x86_64-llvm=9.0.1-1' required by mingw-w64-x86_64-compiler-rt

すると、上記のように他のパッケージの依存関係によってインストールができません。

そこで、まずはmingw-w64-x86_64-compiler-rtを先に更新します

$ pacman -S mingw-w64-x86_64-compiler-rt
resolving dependencies...
looking for conflicting packages...
...

次に、mingw-w64-x86_64-clangをインストールします

$ pacman -S mingw-w64-x86_64-clang
resolving dependencies...
looking for conflicting packages...
...

無事インストール出来ました… と思いきやclangを実行すると以下のようなエラーが発生します

$ clang --version
C:/msys64/mingw64/bin/clang.exe: error while loading shared libraries: libLLVM.dll: cannot open shared object file: No such file or directory

調べてみると、libffi-7.dllというDLLが不足しているらしく、mingw-w64-x86_64-libffiをインストールすることで解決しました

$ pacman -S mingw-w64-x86_64-libffi
$ clang --version
clang version 12.0.1
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: C:/msys64/mingw64/bin

おすすめ