Visual Studio プロジェクトでの Clang/LLVM のサポート

Visual Studio 2019 では、CMake プロジェクトと MSBuild プロジェクトの両方に対して Clang がサポートされます。

Visual Studio 2019 のバージョン 16.2 以降と Clang を使用して、Windows または Linux をターゲットとする C++ Visual Studio プロジェクト (MSBuild) を編集、ビルド、デバッグできます。

インストール

Visual Studio での IDE のサポートを十分に活用するために、Windows 用の最新の Clang コンパイラ ツールを使用することをお勧めします。 そのツールをまだインストールしていない場合は、Visual Studio インストーラーを開いて、 [C++ によるデスクトップ開発] オプション コンポーネントの下にある [Windows 用 C++ Clang コンパイラ] を選択してインストールできます。 お使いのコンピューターで既存の Clang インストールを使用することをお勧めします。その場合は、 v142 build tools に C++ Clang-clを選択します。

Microsoft C++ 標準ライブラリ用には Clang 8.0.0 以上が必要です。

[個別のコンポーネント] タブが選択され、C++ Clang コンポーネントが表示されている Visual Studio インストーラーのスクリーンショット。

新しいバージョンの Visual Studio では、Clang ツールセットの新しいバージョンが提供されます。 バンドルされたバージョンの Clang は自動的に更新され、この標準ライブラリの Microsoft による実装の更新に合わせて最新の状態に保たれます。 たとえば、Visual Studio 2019 バージョン 16.9 には Clang v11 が含まれています。

Windows プロジェクトを Clang ツールを使用するように構成する

Visual Studio プロジェクトを Clang を使用するように構成するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、 [プロパティ] を選択します。 通常は、最初にダイアログの上部にある [すべての構成] を選択する必要があります。 次に、[一般プラットフォームツールセット] で [ llvm (clang-cl) ] を選択し、[ OK]をクリックします。

[プロパティページ] ダイアログボックスのスクリーンショット。 [構成プロパティ] [全般] が選択され、[  プラットフォームツールセット] と [LLVM (clang-cl)] オプションが強調表示されています。

Visual Studio にバンドルされている Clang ツールを使用する場合は、追加の手順は必要ありません。 Windows プロジェクトの場合、Visual Studio の既定では、Clang が clang-cl モードで呼び出されます。 それがこの標準ライブラリの Microsoft による実装とリンクされます。 既定では、 clang-cl.exe%VCINSTALLDIR%\Tools\Llvm\bin\%VCINSTALLDIR%\Tools\Llvm\x64\bin\にあります。

カスタム clang インストールを使用している場合は、 カスタム clang インストールルートを最初のディレクトリとして追加するか、プロパティの値を変更することによって、Project プロパティ VC++ ディレクトリ構成プロパティの実行可能ディレクトリ を変更できます。 詳細については、「カスタム LLVM の場所を設定する」を参照してください。

Linux プロジェクトを Clang ツールを使用するように構成する

Linux プロジェクトの場合、Visual Studio では Clang GCC と互換性のあるフロントエンドが使用されます。 プロジェクトのプロパティとほぼすべてのコンパイラ フラグは同じです。

Visual Studio の Linux プロジェクトを Clang を使用するように構成するには:

  1. ソリューション エクスプローラーでプロジェクト ノードを右クリックし、 [プロパティ] を選択します。
  2. 通常は、最初にダイアログの上部にある [すべての構成] を選択する必要があります。
  3. Linux 用 Windows サブシステム (wsl) を使用している場合は、[一般的なプラットフォームツールセット] で、[ clang for Linux 用 Windows サブシステム] を選択します。 リモートコンピューターまたは VM を使用している場合は、 リモート Linux の 場合は [clang] を選択します。
  4. [OK] を押します。

構成プロパティ [全般] が選択され、[  プラットフォームツールセット] と [l l V M (clang c l)] オプションが強調表示されている [コンソールアプリ clang Visual Studio 2019 のプロパティページ] ダイアログボックスのスクリーンショット。

Linux 上の Visual Studio の場合、PATH 環境プロパティで検出された最初の Clang の場所が既定で使用されます。 カスタムの clang インストールを使用している場合は、プロパティの値を変更するか、 LLVMInstallDir [Project のLLVMInstallDir>>] [ >>] VC++ [ディレクトリ] [ >>>>] の順に移動します。 詳細については、「カスタム LLVM の場所を設定する」を参照してください。

カスタム LLVM の場所を設定する

1 つ以上のプロジェクトに対して LLVM へのカスタム パスを設定するには、Directory.build.props ファイルを作成します。 次に、そのファイルを任意のプロジェクトのルート フォルダーに追加します。 ソリューションのルート フォルダーに追加することで、ソリューションに含まれるすべてのプロジェクトに適用できます。 ファイルは次のようになります (ただし、LLVM パスは実際のものを使用してください)。

<Project>
  <PropertyGroup>
    <LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
  </PropertyGroup>
</Project>

このプロパティとカスタム LLVM ツールセットのバージョンを組み合わせることができます。 詳細については、「カスタム LLVM ツールセットのバージョンを設定する」を参照してください。

カスタム LLVM ツールセットのバージョンを設定する

Visual Studio 2019 バージョン 16.9 以降では、LLVM のカスタム ツールセット バージョンを設定できます。 Visual Studio でプロジェクトにこのプロパティを設定するには、次のようにします。

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関するページを参照してください。

  2. 構成プロパティ[全般] プロパティページを選択します。

  3. [プラットフォーム ツールセット] プロパティがまだ設定されていない場合は、 [LLVM (clang-cl)] に変更します。

  4. [構成プロパティ] の [ 詳細設定] プロパティページを選択します。

  5. [LLVM ツールセット バージョン] プロパティを自分が使用するバージョンに変更し、 [OK] を選択して変更を保存します。

[LLVM ツールセット バージョン] プロパティは、LLVM プラットフォーム ツールセットが選択されている場合にのみ表示されます。

1 つ以上のプロジェクトに対してツールセット バージョンを設定するには、Directory.build.props ファイルを作成します。 次に、そのファイルを任意のプロジェクトのルート フォルダーに追加します。 ソリューションのルート フォルダーに追加することで、ソリューションに含まれるすべてのプロジェクトに適用します。 ファイルは次のようになります (ただし、LLVM パスは実際のものを使用してください)。

<Project>
  <PropertyGroup>
    <LLVMToolsVersion>11.0.0</LLVMToolsVersion>
  </PropertyGroup>
</Project>

このプロパティとカスタム LLVM の場所を組み合わせることもできます。 たとえば、Directory.build.props ファイルは次のようになります。

<Project>
  <PropertyGroup>
    <LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
    <LLVMToolsVersion>11.0.0</LLVMToolsVersion>
  </PropertyGroup>
</Project>

Directory.build.props ファイルを追加すると、プロジェクトのプロパティ ページ ダイアログに既定としての設定が表示されます。 ただし、Visual Studio でこれらのプロパティを変更すると、Directory.build.props ファイル内の設定がオーバーライドされます。

追加のプロパティの設定、編集、ビルド、およびデバッグ

Clang 構成を設定した後、プロジェクト ノードをもう一度右クリックし、 [プロジェクトの再読み込み] を選択します。 これで、Clang ツールを使用してプロジェクトのビルドとデバッグを実行できます。 Visual Studio によって、Clang コンパイラを使用していることが検出され、IntelliSense、強調表示、ナビゲーション、およびその他の編集機能が提供されます。 エラーおよび警告は、 [出力] ウィンドウに表示されます。 Clang 構成のプロジェクト プロパティ ページは、MSVC のものに似ています。 ただし、エディット コンティニュなどの一部のコンパイラ依存機能は、Clang 構成では使用できません。 プロパティ ページで使用できない Clang コンパイラまたはリンカー オプションを設定することができます。 [構成プロパティ] [ C/c + +] (または [リンカー])コマンドラインの [ 追加オプション] の下にあるプロパティページで、手動で追加します。

デバッグ時には、ブレークポイント、メモリとデータの視覚化、およびその他のほとんどのデバッグ機能を使用できます。

Clang デバッグが表示されている Visual Studio のスクリーンショット。