昨晩の ABC-202 への参加中に、コンパイラが動かないという自体に直面した。先週のコンテストまでは普通に動いていたコンパイルタスクがこういうログを吐いて停止してしまう。
command not found: x86_64-apple-darwin19-gcc-10
コンテスト中は AtCoder のコードテスターを代理の実行環境として使ってことなきをえたが、いったいなんだったのかを一晩明けて考えた。
わかったのはこういうことだった。この記事で設定したやり方がうまくなかった。brew install gcc
でインストールしたのが当時は gcc-10 だったものが、なんとなく brew upgrade したときにそうと気づかず gcc-11 になってしまっていた様子。
要するに、特定バージョンへの依存に無頓着だったというだけのことであった。というかそもそも gcc-10 を使っていたことにも意味はなかった。 AtCoder のコンパイラは gcc-9.2.1 と書いてあるので(執筆時時点)、今後はこれを使うことにした。
こうやって直してみた。まずは dotfiles で gcc-9 のインストールとエイリアスの設定をおこなう。それから atcoder の実行環境でもビルドタスクのコマンドを書き換える。
dotfiles で定義した alias g++='g++-9'
を .vscode/tasks.json
のなかで使おうと思ったのだが、どうしてかうまく読み込まれずに xcode の clang が呼び出されてしまうので、タスク定義では相変わらず g++-9
と不格好にバージョンを指定してしまっている。まあ、インストール側でバージョン固定をしているわけだし、これくらいならいいかとズボラになっている。