山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

C++でint128を使いたい。

int128

AtCoder Library が int128 を要求していますが、僕のC++の環境は MinGW の32ビット版を使用していたので、int128 を使うことができませんでした。

MSYS2

結構前に Codeforces が int128 をサポートしたみたいなので、64ビット版の環境を構築しようと思い、MSYS2をインストールしました。

導入は、

blogs.osdn.jp

をそのままやったんですが、gccのバージョンが10.2.0となってしまいました。Codeforces のバージョンは 9.2.0 らしいので、ダウングレードする必要がありました。

なので、

pacman -S mingw-w64-x86_64-gcc

は実行せずに、ダウングレードについて調べました。

stackoverflow.com

の質問を見ると、古いパッケージが必要なので、

pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-9.2.0-2-any.pkg.tar.xz

pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-9.2.0-2-any.pkg.tar.xz

を実行しました。

あとは、環境変数に "D:\Program\msys64\mingw64\bin" を追加してgccコマンドが使えるようになりました。

感想

そもそも、gcc と g++の違いや、Codeforces の g++ 17 9.2.0 の数字の意味が分からず、どうすればいいのか迷ってました。

今のところは問題なく使えてますが、トラブルが起きたらまた環境構築しようと思います。WSLを使うのが流行りらしいですね?