clang++環境を構築してみる(Windows11 + VSCode)

# 目次
- [LLVMのインストール](#-LLVMのインストール)
- [パスの設定](#-パスの設定)
- [とりあえずコンパイルしてみる](#-とりあえずコンパイルしてみる)
- [Visual Studio Build Toolsのインストール](#-Visual-Studio-Build-Toolsのインストール)
- [再度コンパイルしてみる](#-再度コンパイルしてみる)
- [VS Codeでコンパイルしてみる](#-VS-Codeでコンパイルしてみる)
- [VS Codeの設定](#-VS-Codeの設定)
- [VS Codeで実行してみる](#-VS-Codeで実行してみる)
- [VS Codeでデバッグ実行してみる](#-VS-Codeでデバッグ実行してみる)

# LLVMのインストール
wingetを使ってllvmをインストールします。
01. 管理者権限でcmdを起動する
02. 以下のコマンドを実行しllvmをインストールする
```:cmd
>winget install --scope machine LLVM.LLVM
```
![003-llvm_install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/b3c01c04-aac3-2664-b2d8-48b4da391cfa.png)

# パスの設定
01. Windowsボタンを右クリックし「システム」をクリックする
02. 関連リンクの「システムの詳細設定」をクリックする
03. 詳細設定タブから、「環境変数」をクリックする
04. システム環境変数(S)の「Path」の行をダブルクリックする
05. 「C:\Program Files\LLVM\bin\」を追加する
![005-env.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/f7624505-a4f7-26fb-d7a6-cb7957bdd27f.png)

# とりあえずコンパイルしてみる
任意のディレクトリでコードを書いてコンパイルします。
```c++:hello.cpp
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
  vector<string> msg{"Hello", "C++", "World", "from", "VS Code"};

  for (const string &word : msg)
  {
    cout << word << " ";
  }
  cout << endl;
}
```
```:cmd
>clang++ hello.cpp
```
![006-compile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/7a22706a-339c-f7c4-e9d6-81099bc74d53.png)

# Visual Studio Build Toolsのインストール
「Visual Studio インストールが見つかりません。...」と言われたので
Visual Studio Build Toolsをインストールします。

URL: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/

01. 「Build Tool のダウンロード」をクリックし「vs_BuildTools.exe」をダウンロードする
02. 「vs_BuildTools.exe」をダブルクリックし実行する
03. 「C++ によるディスクトップ開発」にチェックを入れて「インストール」をクリックする
![007-Build_Tool_install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/25cb064f-19a2-1fde-432a-794c4958302e.png)
![008-Build_Tool_install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/bc365f73-a0b9-cbf7-8da1-1a8ab66614dc.png)

# 再度コンパイルしてみる
![010-compile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/6f87e772-438c-6d23-2d49-352adfff1a5a.png)

# VS Codeでコンパイルしてみる
コマンドプロンプトでコンパイルできたのでVS Codeでもコンパイルしてみます。
VS Codeは、ポータブル版に「Japanese Language Pack」をインストールした状態から始めています。
01. コードが存在するディレクトリをVS Codeにドラックする
02. アクティビティバーの拡張機能から「C/C++」をインストールする
03. 「hello.cpp」を開いた後「Ctrl+Shift+b」を押し、「C/C++: clang++.exe アクティブなファイルのビルド」をクリックする

![011-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/f97c1410-6776-27dd-30aa-ada80b70397b.png)
![012-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/e4118446-9551-e55d-97af-b8b6ab64de28.png)
![013-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/c32215fa-3abb-cc91-eda2-df17183cf206.png)
![014-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/8f9b9371-4363-4677-7319-4f29b1cf12f7.png)

# VS Codeの設定
コンパイルがうまくいったようなので、環境を構築していきます。
01. アクティビティバーの拡張機能から「CodeLLDB」をインストールする
02.  「hello.cpp」を開いた後「Ctrl+Shift+b」を押し、「C/C++: clang++.exe アクティブなファイルのビルド」の歯車をクリックする
03. 「.vscode\task.json」が作成される
04. 「hello.cpp」を開いた状態で「F5」キーを押し、「LLDB」をクリックする
05. ダイアログの「OK」をクリックする
06. 「launch.json」が作成されるので以下のように修正する
```json-doc:launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/hello.exe",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "C/C++: clang++.exe アクティブなファイルのビルド",
        }
    ]
}
```
![015-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/28267322-bae7-5bb5-279b-87ed22c6ada1.png)
![016-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/39cb1bbe-3ec4-76f0-dc70-c598e9e77ee4.png)
![017-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/0cf79a09-b187-0b36-31c5-eb46363eefae.png)
![018-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/ffae5418-75dc-4717-ed53-6648e18e98eb.png)
![019-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/ef0e9ba4-c792-73f5-e00e-6ac70bfe53a3.png)
![020-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/544fafc8-5380-b17c-f47d-8cc107948bdd.png)

# VS Codeで実行してみる
01. 「hello.cpp」を開いた状態で「Ctl + F5」キーを押す
02. ターミナルに「Hello C++ World from VS Code 」が表示されれば成功
![021-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/31cd9f9a-cf69-1bde-2acf-bfe28a3a7a60.png)

# VS Codeでデバッグ実行してみる
01. 「hello.cpp」にブレイクポイントを設定して「F5」キーを押す
![022-vs_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128087/a196f9dc-a706-3d46-3c34-eeb3848a3ef6.png)