AtCoder Library(ACL)をWindowsで入れようとしたらハマったのでメモ
前菜
ABC193のE問題で中国剰余定理が出た。実装、できず…(実装力が皆無なので)
Pocala「ACLとやらを、入れてみるか…」
(atcoder.cppの入っているのと同じディレクトリにatcoderフォルダを置き、いろいろしたのち実行)
Pocala「…!?!?!?」
ばーん
困った。…のでTwitterで見当をつけたのち聞いたら優しい返信を頂いた…どうにかなった…ありがてえ…ありがてえ…
- 多くの環境で動くように作っていますが、C++標準からある程度の拡張機能を要求します。具体的には以下のことを仮定します。
— Pocala (@pocalamochi) March 1, 2021
- `__int128 / unsigned __int128(g++, clang++)` か `_mul128 / _umul128(Visual Studio)` が使えること
これの話をしているのかな…
本題
どんな人向け?
WindowsにMinGWを入れた覚えがあって、AtCoder Libraryを入れたけど、さっき書いたような「error:expected')' before 'unsigned'」みたいなエラーが出て「C++何もわからないよ~(泣)」となっている人
原因(僕の場合)
MinGWの入れ方をミスった結果、unsigned __int128 が使えない設定になってしまっていた
ac-library-master>document.ja>appendix.md 辺りに
C++標準からある程度の拡張機能を要求します。具体的には以下のことを仮定します。
- `__int128 / unsigned __int128(g++, clang++)` か `_mul128 / _umul128(Visual Studio)` が使えること
って書いてあったので…
対処法
今入れてる方のMinGWを消したあと、MinGW-w64を気をつけてインストールする
qiita.com
www.javadrive.jp
リンク切れた時用に超簡略文字起こしをしておくと
【消し方】C: 直下のMinGWフォルダを消して、環境変数のPATHのところにあるMinGWへのパスを消す
【入れ方】気合でMinGW-w64とかをインストールしていく。インストーラの設定の所でArchitectureをi686からx86_64に変更することを忘れない
該当ツイートへのリンク
https://twitter.com/pocalamochi/status/1366370691939926017
ぐわあああああああ(これはAtCoder Libraryを手元に入れても実行できない人の図) pic.twitter.com/bFO6dQbvSy
— Pocala (@pocalamochi) March 1, 2021
https://twitter.com/pocalamochi/status/1366374010615832577
- 多くの環境で動くように作っていますが、C++標準からある程度の拡張機能を要求します。具体的には以下のことを仮定します。
— Pocala (@pocalamochi) March 1, 2021
- `__int128 / unsigned __int128(g++, clang++)` か `_mul128 / _umul128(Visual Studio)` が使えること
これの話をしているのかな…
俺のと違ーーーう!!
ごめん…