C++の環境構築メモ(Mac, VSCodeで競技プログラミング)


競技プログラミングのために c++の環境構築を Mac で行いました。
とりあえず Mac で c++を動かすまでのメモ。

環境

  • Mac (BigSur 11.6)

c++のコンパイラインストール

xcode-select --install
brew install gcc

VSCode の拡張機能インストール

  • C/C++
  • C/C++ Extension Pack
  • Code Runner

VSCode 設定

settings.json 設定

/.vscode/settings.json
{
    "clang.executable": "clang++",
    "code-runner.runInTerminal": true,
    "clang.cxxflags": [ "-std=c++14"],
    "code-runner.executorMap": {
      "javascript": "node",
      "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
      "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
      "cpp": "cd $dir && g++ -O2 -std=c++14 $fileName && ./a.out",
      "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
      "php": "php",
      "python": "python -u",
      "perl": "perl",
      "perl6": "perl6",
      "ruby": "ruby",
      "go": "go run",
      "lua": "lua",
      "groovy": "groovy",
      "powershell": "powershell -ExecutionPolicy ByPass -File",
      "bat": "cmd /c",
      "shellscript": "bash",
      "fsharp": "fsi",
      "csharp": "scriptcs",
      "vbscript": "cscript //Nologo",
      "typescript": "ts-node",
      "coffeescript": "coffee",
      "scala": "scala",
      "swift": "swift",
      "julia": "julia",
      "crystal": "crystal",
      "ocaml": "ocaml",
      "r": "Rscript",
      "applescript": "osascript",
      "clojure": "lein exec",
      "haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",
      "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
      "racket": "racket",
      "ahk": "autohotkey",
      "autoit": "autoit3",
      "dart": "dart",
      "pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
      "d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",
      "haskell": "runhaskell",
      "nim": "nim compile --verbosity:0 --hints:off --run",
      "lisp": "sbcl --script",
      "kit": "kitc --run"
    },
    "[cpp]": {
      "editor.defaultFormatter": "ms-vscode.cpptools"
    }
}

c_cpp_properties.json 設定

Command + Shift + P でコマンドパレットを開き、C/C++: Edit configurations(JSON)を選択。

以下のコマンドで gcc のインストール場所を確認し、includePathcompilerPathを修正。

gcc -v
/.vscode/c_cpp_properties.json
{
  "configurations": [
    {
      "name": "Mac",
      "includePath": [
        "${workspaceFolder}/**",
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/"
      ],
      "defines": [],
      "macFrameworkPath": [
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
      ],
      "compilerPath": "/Library/Developer/CommandLineTools/usr/bin/clang",
      "cStandard": "c17",
      "cppStandard": "c++14",
      "intelliSenseMode": "macos-clang-x64"
    }
  ],
  "version": 4
}

実行

c++のファイル作成。

/test.cpp
#include<bits/stdc++.h>
using namespace std;

int main () {
  cout << "Hello World!" << endl;
}

VSCode 右上のRun Code ボタンをクリックすると、実行されて結果がターミナルに表示される。

参考記事

https://qiita.com/YasufumiNakama/items/6efa6975f551a1986e89