vscode+wslでC++のAtCoder環境構築
2026年2月7日概要
この記事では、vscodeとwslを使用して、C++のAtCoder環境構築の手順をメモしておきます。筆者はAtCoderの環境構築を4回ほどやっており(?)、今回一番いい感じにできたのでメモしておきます。コマンドランナーを使うやつとかいろいろ試しましたが、設定がたびたび飛んで動かなかったり、そもそも余分な拡張を入れたくなかったので。
できるようにすること
- accとojを使って、問題の取得とテストを簡単にする。
- vscodeのtasks.jsonのテンプレを少しいじって、cdコマンドを使ったディレクトリ移動をせずに、Ctrl+Shift+Bで開いているcppファイルのビルドとテストを一発でできるようにする。
前提
- VS Codeは.exeで落としてくる。https://code.visualstudio.com/
- WSLは管理者PowerShellで公式の手順でインストール。https://learn.microsoft.com/ja-jp/windows/wsl/install
- wsl拡張機能、C/C++拡張
- gcc、g++をaptで
- ワークスペースにc_cpp_properties.json、tasks.json、(launch.json、ac-libraryは任意)を置く。
- ほかの人の優秀な記事でacc,ojを導入済み。ただし、ログインがセッションの値を直書きでしかできなくなっていたり、コンテスト中止かaccの提出ができなくなっていたり、いろいろと注意が必要。.configにaccの設定があるとか、テストの入っているディレクトリ指定がtestとtestsの違いとか、見るものによってバラバラなので、各自で統一。
template.jsonの設定例
accでテンプレを設定する方法をほかの人が解説しているが、template.jsonはこんな感じ。testなのかtestsにするのか、main.cppという名前で置くのかなどは各自で統一。
// template.json
{
"task": {
"program": ["main.cpp"],
"submit": "main.cpp",
"testdir": "test",
"cmd": "oj d -a {url}"
},
"contest": {
"static": []
}
}
tasks.jsonの設定例
// tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build & Test (AtCoder)",
"type": "shell",
"command": "g++ -g -O0 -Wall main.cpp -o main.out && oj t -c ./main.out -d test",
"options": {
"cwd": "${fileDirname}"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": true
}
}
]
}
まとめ
Ctrl+Shift+Bでcdとかしないでビルドとテストが走るのでめちゃ便利。いろいろなやり方がある感じなので、自分が使いやすい環境を作れるといいですね。
参考書籍の紹介
関連記事:AtCoderを始めた件