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

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

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

インストール

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

インストール

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

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

Visual Studio 2019 インストーラーのスクリーンショット

インストーラーで [個別のコンポーネント] タブが選択されています。 Windows 用 C++ Clang コンパイラが選択されています。 v142 ビルド ツール (x64/x86) の C++ Clang-cl も選択されています。

Visual Studio 2022 インストーラーのスクリーンショット。

インストーラーで [個別のコンポーネント] タブが選択されています。 Windows 用 C++ Clang コンパイラが選択されています。 LLVM (clang-cl) ツールセットの MSBuild サポートも選択されています。

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

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

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

Visual Studio プロジェクトの [プロパティ ページ] ダイアログ ボックスのスクリーンショット。

プロジェクトのプロパティ ページが開き、[構成プロパティ] > [全般] ページが表示されています。 [プラットフォーム ツールセット] ドロップダウンが選択され、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 インストールを使用している場合は、LLVMInstallDir プロパティの値を変更できます。 詳細については、「カスタム LLVM の場所を設定する」を参照してください。

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

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

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

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

Visual Studio 2019 プロジェクトの [プロパティ ページ] ダイアログ ボックスのスクリーンショット

プロジェクトのプロパティ ページが開き、[構成プロパティ] > [全般] ページが表示されています。 [プラットフォーム ツールセット] が選択され、オプションの一覧から LLVM (clang- c l) が選択されています。

Linux 上の Visual Studio の場合、PATH 環境プロパティで検出された最初の Clang の場所が既定で使用されます。 Clang のカスタム インストールを使用する場合は、LLVMInstallDir プロパティの値を変更するか、[プロジェクト]>[プロパティ]>[構成プロパティ]>[VC++ ディレクトリ]>[実行可能ファイルのディレクトリ] でパスを入力する必要があります。 詳細については、「カスタム LLVM の場所を設定する」を参照してください。

カスタム LLVM の場所とツールセットを設定する

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

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

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

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

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「C++ コンパイラとビルドのプロパティを設定する」をご覧ください。

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

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

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

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

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

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

プロパティの設定、編集、ビルド、デバッグ

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

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

サンプル アプリをデバッグしている Visual Studio のスクリーンショット

表示されているアプリの部分では、文字列ベクトルが作成され、それに文字列が追加されています。 コードのブレークポイントで実行が停止しました: v.push_back("Clang/LLVM");"