とりあえず VSCode を入れたい (C++, gcc, Windows)

 競プロ用に VSCode を入れたのでメモ。

Visual Studio Code (VSCode) と gcc のインストール

VSCode のインストール

 まず、VSCode のサイトから [Windows] をクリックでダウンロード ([Windows] と User Installer [64 bit] は同じ) (全ユーザーにインストールしたいなら System Installer)。

・VSCode のダウンロードリンク

VSCodeUserSetup-x64-X.XX.X.exe (X.XX.X はバージョン) がダウンロードされるので実行。使用許諾契約書に同意すると、追加要素を選択する画面になる。

・デスクトップ上にアイコンを作成する
 デスクトップから VSCode を起動できるようになる。
・エクスプローラーのファイル コンテキスト メニューに [Code で開く] アクションを追加する
 ファイルを右クリックすると [Code で開く] から VSCode でファイルを開ける。
・エクスプローラーのディレクトリ コンテキスト メニューに [Code で開く] アクションを追加する
 フォルダを右クリックすると [Code で開く] から VSCode でフォルダを開ける。
・サポートされているファイルの種類のエディターとして、Code を登録する
 ファイルを右クリックすると出る [プログラムから開く] に [Visual Studio Code] が追加される (そのファイルの種類に VSCode が対応している場合)。
・PATH への追加
 Code コマンドで VSCode を開けるようになる。

で、[次へ] -> [インストール] を押してインストール完了。

gcc のインストール

MSYS2 のインストール

 いろいろインストールするのに便利な MSYS2 を入れておきたい。msys2-x86_64-XXXXXXXX.exe (XXXXXXXX はバージョン) をダウンロード。

・MSYS2 のダウンロードリンク (普通はこっち)
・バージョン違いや32bit版があるほう

ダウンロードしたやつを実行。特に何も選択するものがない (スタートメニューに追加するときの名前くらい) ので、[次へ] 連打でインストールで完了。

MinGW-w64のインストール

 MSYS2 を使って MinGW-w64 をインストールしていきます。
 ちなみに MinGW-w64 の公式サイトはここ。( https://www.mingw-w64.org/ ) MSYS2 を入れないでインストールしたい場合は参考にどうぞ。

 では、インストールしていきます。
 まず、スタートメニューから MSYS2 64bit にある MSYS2 MSYSMSYS MinGW x64 を開きます。


とりあえず、

pacman -Syuu

で更新をしておく。再起動が必要になったら開き直してください。で、一応、

pacman -Su

で更新できたか確認。更新が終わったら、 MinGW-w64 を入れる。

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb

とりあえず、最低限これでOK (gdb はデバッグ用)。色々入れたい場合はこっちのほうがいいかも。

pacman -S base-devel mingw-w64-x86_64-toolchain

これで、インストール完了。gcc -v でバージョンが表示されればインストールできてます。ちなみに、pacman -Qqe で MSYS2 でインストールしたパッケージを確認できます。

MinGWのインストール

 (MinGW-w64をインストールした人はスキップ)

 OSDNから mingw-get-setup.exe をダウンロード

・gccのダウンロードリンク (サイト: OSDN)


mingw-get-setup.exe を実行。[Install] を押すと、次の画面が出る。Installation Directory の場所は覚えておきましょう (PATHを通すため)。

・… also install support for the graphical user interface.
 インストールマネージャーが使えるようになる。チェックしないとコマンドラインでしかインストールできない。
・… just for me (自分のアカウント) / for all users (コンピュータの全アカウント)
 インストールマネージャーのショートカットをどのアカウントに入れるか。
・… in the start menu (スタートメニュー) / on the desktop (デスクトップ)
 インストールマネージャーのショートカットをどの場所に入れるか。

進めると、次の画面が出る。

とりあえず、Basic Setup の mingw32-base-binmingw-gcc-g++-bin を選択して [Mark for Installation] を選択、その後、左上の [Installation] から [Apply Changes] を選択、[Apply] を選択してインストール完了。

PATHを通す

 左下の検索で path と打つと [システム環境変数の編集] が出るのでクリック。
 

そして、環境変数をクリック。


Path を選んで [編集]を押す。


環境変数名の編集が開くので、[新規] を押し、gcc がある場所 (インストールした場所の bin フォルダ) を入力。(デフォルトなら、MSYS2 でインストールした場合は C:\msys64\mingw64\bin、MinGWの場合は C:\MinGW\bin と入力する。)
(※MinGW の Path をもともと通していて MinGW-w64 に切り替えたい人などは、MinGW の Path を消すか、MinGW の Path より上に MinGW-w64 の Path を置いてください。)


[OK] を押して完了。コマンドプロンプトで、gcc -v が実行できれば成功。できない場合は (というか、できた場合も Path 編集後は一応) 再起動したほうがいいです。


gcc version X.X.X (X.X.X はバージョン) が表示されればOK。

VSCodeの設定

 まず、VSCode を起動します。


拡張機能で C/C++ を検索してインストール。

IntelliSense の設定

インストールしたら、[ファイル] の [フォルダーを開く] から使いたいフォルダを開く。


次に、Ctrl + Shift + P か F1 でコマンドパレットを開き、C/C++: 構成の編集 (UI) を選択する。


IntelliSense の構成が開かれるので、[構成の追加] で適当な名前の構成を追加する。(実際は、構成の追加をしないで Win32 のままでもいいけど、デフォルトの Win32 の設定を残しておきたい人は追加しましょう。)


そしたら、設定を3か所変更します。まず、コンパイラ パスをインストールした mingw の g++.exe に変更する。


で、エラーっぽくなってる IntelliSense モードlinux-gcc-x64 に変更。


最後に、パスを含めるに、コンパイラパスで指定した、…/bin/g++.exe…/include に変えたものを追加。


で、構成の編集は完了。.vscode フォルダと、その中に c_cpp_properties.json ファイルができていればOK。

ビルドの設定

 そしたら次は、フォルダ内の適当な cpp ファイルを (なかったら作って) 開いて、C/C++ 構成 (右下の Win32 となっているところ) をクリックし、さっき追加した構成名に変更する。


そして、実行とデバッグから [C++ (GDB/LLDB)] -> [C/C++: g++.exe] で実行。




.vscode フォルダ内に tasks.json ができればOK。

(※ファイルやフォルダ (ユーザー名とか) に日本語の文字が含まれていると、Unexpected GDB output from command "-environment -cd … のエラー、GDBで、ファイルかフォルダがないよみたいなエラーが出ることがあります。


その場合は、日本語が含まれないフォルダに変更してください。それか、(ほかのアプリ等が文字化けする可能性があるが) Windows の設定で、[時刻と言語] -> [地域] -> [日付、時刻、地域の追加設定] -> [地域] -> [システム ロケールの変更] のベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用にチェックを入れて再起動するとエラーが出なくなります。)

では、tasks.json を見てみましょう。

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe アクティブなファイルのビルド",
            "command": "C:/msys64/mingw64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe" // (1)
            ],
            "options": {
                "cwd": "C:/msys64/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "デバッガーによって生成されたタスク。"
        }
    ],
    "version": "2.0.0"
}

こんな感じ。(1) の ${fileBasenameNoExtension} を変えると、出力される exe ファイルの名前を変えられます。(例えば、"${fileDirname}\\a.exe" で a.exe が出力される。) 今は、cpp ファイルと同じ名前の exe ファイルが出力される。
 そしたら、Ctrl + Shift + B でビルドしてみましょう。exe ファイルが出力されればOK。

実行とデバッグの設定

 次は、実行とデバッグをできるようにします。
 まず、cpp ファイルを開いた状態で、ここを押して、[C++ (GDB/LLDB)] で launch.json を作成します。



できたら、[構成の追加] から C/C++: (gdb) 起動を選択。


できたら、"program" と "miDebuggerPath" の2か所を下のように書き換えましょう。"preLaunchTask" を追加すると、実行前にビルドしてくれます。"externalConsole" を true にすると標準入力用にコンソールが開きます。

{
	// IntelliSense を使用して利用可能な属性を学べます。
	// 既存の属性の説明をホバーして表示します。
	// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
	"version": "0.2.0",
	"configurations": [
		{
			"name": "(gdb) 起動",
			"type": "cppdbg",
			"request": "launch",
			"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // tasks.json の "args" の ….exe
			"args": [],
			"stopAtEntry": false,
			"cwd": "${fileDirname}",
			"environment": [],
			"externalConsole": false, // false だと標準入力がターミナルからになる、true だと入力用にコンソールが開く
			"MIMode": "gdb",
			"miDebuggerPath": "C:/msys64/mingw64/bin/gdb.exe", // tasks.json の "command" の g++ を gdb に変更したもの
			"setupCommands": [
				{
					"description": "gdb の再フォーマットを有効にする",
					"text": "-enable-pretty-printing",
					"ignoreFailures": true
				},
				{
					"description":  "逆アセンブリ フレーバーを Intel に設定",
					"text": "-gdb-set disassembly-flavor intel",
					"ignoreFailures": true
				}
			],
			"preLaunchTask": "C/C++: g++.exe アクティブなファイルのビルド" // (追加) tasks.json の "label"
		}
		
	]
}

これで完了。保存してね (Ctrl + S)。
Ctrl + F5 で実行、F5 か、デバッグと実行のところで、デバックあり実行ができます。


(※実行時に、エラー: Unexpected GDB output from command "-exec-run". が出ることがあります。


これは、MinGW-w64 を入れて、Path が通ってない場合に起きます。Path を通しましょう。一応、Path を通さなくても、gdb のバージョンを 9 に落とすとでなくなるようです。)

終わり!

コメント

このブログの人気の投稿

ワーシャルフロイド法

ダイクストラ法