Linux ワークロードのダウンロード、インストール、セットアップ

Linux プロジェクトは Visual Studio 2017 以降でサポートされます。 これらのバージョンのドキュメントを表示するには、この記事の Visual Studio Version セレクター コントロールを Visual Studio 2017 または Visual Studio 2019 に設定します。 このページの目次の一番上にあります。

Windows 上の Visual Studio IDE を使って、リモートの Linux システムや、仮想マシン、または Linux 用 Windows サブシステム上で実行される C++ プロジェクトの作成、編集、およびデバッグを行うことができます。

Visual Studio プロジェクトに変換しなくても、CMake を使用する既存のコード ベースで作業できます。 コード ベースがクロス プラットフォームの場合、Visual Studio 内から Windows と Linux の両方をターゲット設定できます。 たとえば、Visual Studio を使用して、Windows でコードを編集、ビルド、およびデバッグできます。 次に、Linux 用にプロジェクトを簡単に再ターゲットして、Linux 環境でビルドおよびデバッグを行います。 Linux 用のヘッダー ファイルがローカル コンピューターに自動的にコピーされます。 Visual Studio によってそれらが使用され、IntelliSense の完全なサポート (ステートメント入力候補、定義へ移動など) が提供されます。

これらのどのシナリオについても、C++ による Linux 開発ワークロードが必要です。

Visual Studio のセットアップ

  1. Windows 検索ボックスに「Visual Studio インストーラー」と入力します。

  2. アプリの結果でインストーラーを探し、それをダブルクリックします。 インストーラーが開いたら、 [変更] を選択して [ワークロード] タブをクリックします。 [Other toolsets](その他のツールセット) まで下へスクロールして、 [C++ による Linux 開発] ワークロードを選択します。

    Visual Studio インストーラーの Visual C++ for Linux Development ワークロード項目が強調されているスクリーンショット。

    Linux 開発ワークロードが選択されています。 [インストールの詳細] ウィンドウが強調表示され、ワークロードに含まれる内容が一覧表示されます。 これには、Visual Studio C++ のコア機能、Windows ユニバーサル C ランタイム、Linux 開発用の Visual C++ が含まれます。 オプションのコンポーネント (CMake および Linux 用の Visual C++ ツール) も選択されています。

  3. IoT または組み込みのプラットフォームをターゲットにしている場合は、右側の [インストールの詳細] ウィンドウに移動します。 [C++ による Linux 開発] の下で [オプション コンポーネント] を展開し、必要なコンポーネントを選択します。 Linux で CMake は既定でサポートされるよう選択されています。

  4. [変更] をクリックして、インストールを続行します。

Linux 環境を作成するためのオプション

Linux マシンがまだない場合は、Azure で Linux 仮想マシンを作成できます。 詳細については、クイック スタート: Azure portal で Linux 仮想マシンを作成する」を参照してください。

Windows 10 以降の Linux 用 Windows サブシステム (WSL) には、お好みの Linux ディストリビューションをインストールして、対象とすることができます。 詳細については、「Windows Subsystem for Linux Installation Guide for Windows 10」 (Windows 10 用の Windows Subsystem for Linux のインストール ガイド) を参照してください。 Windows ストアにアクセスできない場合は、WSL ディストリビューション パッケージを手動でダウンロードすることができます。 WSL は便利なコンソール環境ですが、グラフィック アプリケーション用には推奨されません。

Visual Studio の Linux プロジェクトを使用する場合、リモートの Linux システムまたは WSL に次の依存関係がインストールされている必要があります。

  • コンパイラ - Visual Studio 2019 以降では、GCC と Clang が完全にサポートされています。
  • gdb - Visual Studio によって Linux システム上の gdb が自動的に起動され、Visual Studio デバッガーのフロント エンドを使用した、Linux 上の完全に忠実なデバッグ エクスペリエンスが提供されます。
  • rsync および zip - rsync と zip を含めることにより、IntelliSense で使用するためのヘッダー ファイルを、Visual Studio が Linux システムから Windows ファイルシステムに抽出できるようになります。
  • make
  • openssh-server (リモートの Linux システムのみ) - Visual Studio は、セキュリティで保護された SSH 接続を介してリモートの Linux システムに接続します。
  • CMake (CMake プロジェクトのみ) - Microsoft の静的にリンクされた Linux 用 CMake バイナリをインストールできます。
  • ninja-build (CMake プロジェクトのみ) - Ninja は、Visual Studio 2019 バージョン 16.6 以降での Linux および WSL 構成の既定のジェネレーターです。

以下のコマンドでは、clang ではなく g++ を使っていることを前提としています。

Visual Studio の Linux プロジェクトを使用する場合、リモートの Linux システムまたは WSL に次の依存関係がインストールされている必要があります。

  • gcc - Visual Studio 2017 では、GCC が完全にサポートされています。
  • gdb - Visual Studio によって Linux システム上の gdb が自動的に起動され、Visual Studio デバッガーのフロント エンドを使用した、Linux 上の完全に忠実なデバッグ エクスペリエンスが提供されます。
  • rsync および zip - rsync と zip を含めることにより、IntelliSense で使用するためのヘッダー ファイルを、Visual Studio が Linux システムから Windows ファイルシステムに抽出できるようになります。
  • make
  • openssh-server - Visual Studio は、セキュリティで保護された SSH 接続を介してリモートの Linux システムに接続します。
  • CMake (CMake プロジェクトのみ) - Microsoft の静的にリンクされた Linux 用 CMake バイナリをインストールできます。

Linux のセットアップ: WSL 上の Ubuntu

WSL をターゲットにしている場合は、ビルドとデバッグを行うためにリモート接続を追加したり、SSH を構成したりする必要はありません。 Intellisense のサポートで Linux のヘッダーを Visual Studio と自動的に同期するには、ziprsync が必要です。 ninja-build は CMake プロジェクトにのみ必要です。 必要なアプリケーションがまだない場合は、このコマンドを使用してインストールできます。

sudo apt-get install g++ gdb make ninja-build rsync zip

リモートの Linux システム上の Ubuntu

ターゲットの Linux システムには、openssh-serverg++gdbmake がインストールされている必要があります。 ninja-build は CMake プロジェクトにのみ必要です。 ssh デーモンが実行されている必要があります。 Intellisense サポート対応のローカル コンピューターでリモート ヘッダーを自動同期するには、ziprsync が必須です。 これらのアプリケーションがまだない場合は、次の手順でインストールできます。

  1. Linux コンピューターのシェル プロンプトで次のコマンドを実行します。

    sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip
    

    sudo コマンドを実行するために、root パスワードの入力を求められる場合があります。 その場合は、入力して続行します。 完了すると、必要なサービスとツールがインストールされます。

  2. 次のコマンドを実行し、Linux コンピューターで ssh サービスを実行します。

    sudo service ssh start
    

    サービスが開始され、バックグラウンドで実行され、接続を受け付けられる状態になります。

WSL 上の Fedora

Fedora は、dnf パッケージ インストーラーを使用しています。 g++gdbmakersyncninja-build、および zip をダウンロードするには、以下を実行します。

sudo dnf install gcc-g++ gdb rsync ninja-build make zip

Intellisense のサポートで Linux のヘッダーを Visual Studio と自動的に同期するには、ziprsync が必要です。 ninja-build は CMake プロジェクトにのみ必要です。

リモートの Linux システム上の Fedora

Fedora を実行しているターゲット マシンで dnf パッケージ インストーラーを使用します。 openssh-serverg++gdbmakeninja-buildrsync、および zip をダウンロードし、ssh デーモンを再起動するには、次の手順に従います。 ninja-build は CMake プロジェクトにのみ必要です。

  1. Linux コンピューターのシェル プロンプトで次のコマンドを実行します。

    sudo dnf install openssh-server gcc-g++ gdb ninja-build make rsync zip
    

    sudo コマンドを実行するために、root パスワードの入力を求められる場合があります。 その場合は、入力して続行します。 完了すると、必要なサービスとツールがインストールされます。

  2. 次のコマンドを実行し、Linux コンピューターで ssh サービスを実行します。

    sudo systemctl start sshd
    

    サービスが開始され、バックグラウンドで実行され、接続を受け付けられる状態になります。

次の手順

これで Linux プロジェクトを作成するか開いて、ターゲット システム上で実行できるように構成する準備が整いました。 詳細については次を参照してください: