CLion 2024.1 ヘルプ

ローカルソースを使用したリモート

このリモートモードを使用すると、SSH(英語) 経由で接続されたリモート Linux マシンを対象とする macOS、Linux、Windows デスクトップ上の CLion で作業できます。Raspberry Pi(英語) のようなシングルボードコンピューター上の組み込みシステムを含め、Linux ベースのターゲットを選択できます。また、プログラムはクラウドプラットフォーム上で起動することも、Docker コンテナー内などで起動することもできます。

このモードでは、IDE インスタンスがローカルで実行され、ソースファイルもローカルクライアントに配置され、リモートホストへの自動同期が行われます。リモートホスト側では、CLion がホストコンパイラーと CMake/make を使用してコンパイルとビルドを実行し、デバッグにホスト GDB を使用して、リモートターゲットでアプリケーションを実行します。

ワークフローの手順

  1. リモートツールチェーンを作成する :

    • 資格情報を提供し、接続を確認

    • ツールの検出を待ち、必要に応じて手動でパスを指定します。

  2. リモートツールチェーンをデフォルトとして設定するか、関連する CMake プロファイルを作成します

  3. 必要に応じて、デプロイエントリのパスマッピングを調整します。

  4. デフォルトのプロファイルを使用するか、ビルド、実行、デバッグ用にステップ 2 からのプロファイルを選択します。

  1. リモートツールチェーンを作成する :

    • 資格情報を提供し、接続を確認

    • ツールの検出を待ち、必要に応じて手動でパスを指定します。

  2. 設定 | ビルド、実行、デプロイ | Makefile でリモートツールチェーンに切り替えます。

  3. 必要に応じて、デプロイエントリのパスマッピングを調整します。

  4. ツール | Makefile | Makefile プロジェクトのクリーンと再ロードを呼び出します。

    構成設定で、実行可能ファイルをリモートバイナリにポイントします。

Windows クライアントの仕様

Windows クライアントで作業するときは、次の点に注意してください。

  • IntelliJ プラットフォームの問題(英語)のため、idea.properties ファイルにプロパティidea.case.sensitive.fs=true を設定する必要があります (プロパティファイルにアクセスするには、メインメニューからヘルプ | カスタムプロパティの編集 ... を選択します)。その後、キャッシュリセット ( ファイル | キャッシュの破棄 / 再起動 ...) で CLion を再起動します。

  • Windows でのファイル同期の場合、デフォルトでは、CLion は独自のリモートホストアクセスと、tar ユーティリティを使用したホスト側での圧縮に依存しています。このメカニズムは、macOS および Linux での Rsync ツールとの同期よりも遅く動作します。Windows で Rsync 同期を有効にするには、デプロイ設定ダウンロード / アップロードに Rsync を使用チェックボックスを選択します。

リモート認証情報を使用してツールチェーンを作成する

  1. 設定 | ビルド、実行、デプロイ | ツールチェーンに移動します。

  2. plus icon をクリックし、リモートホストを選択します。

    Adding a remote toolchain
  3. すでに SSH 構成をお持ちの場合は、資格情報リストからそれを選択します。

    Selecting an SSH configuration

    それ以外の場合は、「資格情報」フィールドの横にある「 」をクリックします。開いたダイアログで、SSH 構成を作成し、リモートマシンにアクセスするための資格情報を入力します。

    Creating a new SSH configuration
  4. 接続を確立した後、CLion はデフォルトのリモートの場所 /usr/bin/cmake/usr/bin/gdb にあるツールを検出しようとします(または手動で指定した場合はフルパスを使用します)。チェックが正常に終了すると、ツールチェーンは使用可能になります。

    Remote toolchain configured successfully
  5. 新しく作成したツールチェーンをデフォルトのツールチェーンにすることができます(このために、move up move down をクリックしてツールチェーンリストの一番上に移動します)。デフォルトとして設定すると、リモートツールチェーンは、CLion で作成して開くすべてのプロジェクトに使用されます。

    CMake プロジェクトの場合、リモートツールチェーンをデフォルトとして設定すると、デフォルトの CMake プロファイルが自動的に接続されるため、個別の CMake プロファイルを構成する必要はありません。

(CMake)対応する CMake プロファイルを作成する

  • 設定 | ビルド、実行、デプロイ | CMake に移動します。

  • plus icon をクリックして新しい CMake プロファイルを作成し、ツールチェーンフィールドを使用してリモートツールチェーンに接続します。

    CMake profile for the remote toolchain

    または、リモートツールチェーンをデフォルトとして設定し、デフォルトを使用するを選択します。

  • 変更を適用します。

(Makefile)Makefile 設定でリモートツールチェーンを選択する

  1. 設定 | ビルド、実行、デプロイ | Makefile に移動します。

  2. ツールチェーンフィールドでリモートツールチェーンを選択します。

    Selecting a remote toolchain for Makefile

    または、リモートツールチェーンをデフォルトとして設定し、デフォルトを使用するを選択します。

  3. 変更を適用します。

  4. ファイル転送ツールウィンドウ(表示 | ツールウィンドウ | ファイル転送)を使用して、ファイル同期の進行状況を監視します。

    Upload notification

デプロイ構成を確認して調整する

リモートツールチェーンの接続エンティティを作成すると、CLion はそれを設定 | ビルド、実行、デプロイ | デプロイサーバーアクセス構成のリストに追加します。

  • CLion は、プロジェクトコード同期のパスを自動的に構成します。マッピングタブを使用して、デフォルトのマッピングを変更します(たとえば、デフォルトの tmp フォルダーではなく、コピーされたソースの特定のリモートディレクトリを設定します)。

    path mapping for file synchronization
  • CMake プロジェクトの場合、デプロイ設定を変更すると、CLion が自動的に同期をトリガーします。ファイル転送ツールウィンドウ(表示 | ツールウィンドウ | ファイル転送)でプロセスを監視できます。

    file transfer tool window

    プロジェクトをリモートマシンにアップロードするとき、CLion は、最上位の CMakeLists.txt を含むディレクトリをプロジェクトルート(CPP-23995(英語))として使用します。最上位の CMakeLists.txt が別のサブディレクトリにある場合は、マッピングタブでローカルパスを変更します。

    Makefile プロジェクトをリモートマシンにアップロードする場合、CLion は Makefile を含むディレクトリをプロジェクトルートとして使用します(一般チケット CPP-23995(英語) を参照)。Makefile が別のサブディレクトリにある場合は、マッピングタブでローカルパスを変更します。

  • ローカルマシンとリモートマシンがマウントされたボリュームを共有する場合(たとえば、Docker コンテナーを使用する場合)、サードパーティの同期が CLion の外部で構成されている場合に、ソース同期なしでリモート開発をセットアップして不要なファイルの重複を回避できます。

    このためには、接続タブを開き、接続タイプをローカルまたはマウント済みフォルダーに変更してから、パスマッピングをセットアップします(Docker の場合、マップされたボリュームを指定します)。

    No source synchronization

    CLion は、CMake の再ロード時に常に CMake ビルドフォルダーをダウンロードします。ただし、ローカルまたはマウント済みフォルダーデプロイタイプが選択されていて、CMake ビルドフォルダーが既存のパスマッピングのいずれかに格納されている場合は、これをスキップできます。

  • SFTP 接続のデプロイプロセスは、Rsync ツールを使用して高速化できます。macOS および Linux では、Rsync サポートはデフォルトで有効になっています。Windows では、デプロイ設定ダウンロード / アップロードに Rsync を使用チェックボックスを選択して有効にする必要があります。

除外対象パス

デフォルトでは、CLion は、CMakeLists.txt にリストされているすべてのディレクトリにインデックスを付けて同期します。ただし、ディレクトリをマーク | 除外アクションを使用してディレクトリを除外すると、そのディレクトリはリモートデプロイの除外されたパスとしてマークされ、リモートマシンと同期されません。これは、リモートツールチェーンを構成する前にフォルダーを除外すると自動的に実行されます。

デプロイエントリ設定の専用タブで、除外されたパスを確認および調整できます。

Excluded paths
  • リモートツールチェーンが構成されていて、プロジェクトがすでに同期されているときにディレクトリを除外としてマークすると、CLion は除外されたパスを更新するように提案します。更新後、除外されたフォルダーはさらに同期されます。

    Suggestion to update the deployment excluded paths
  • 以前に除外されたディレクトリの除外を解除すると、CLion は、除外されたパスのリストを更新し、フォルダーをリモートホストに再アップロードすることを提案します。

    Suggestion to update the deployment excluded paths and re-upload the folder

ヘッダー検索パスの再同期

  • コードを正しく解決するために、CLion は、ヘッダー検索パスをリモートマシンからローカルクライアントへのすべてのコンテンツと同期します。たとえば、標準ライブラリヘッダーはターゲットから取得されますが、CLion エディターでローカルに作業しているかのようにそれらに移動できます。

    ただし、ヘッダー検索パスの同期には時間がかかる可能性があるため、CLion は最初のファイル転送時にのみ自動的に同期を実行します。その後、CMake または Makefile の再ロードによってトリガーされません。コンパイラーを切り替えたり、プロジェクトの依存関係を変更したりするたびに、ツール | リモートホストと再同期を呼び出してヘッダー検索パスを手動で更新してください。

    自動同期に切り替えることもできます。レジストリで clion.remote.resync.system.cache キーを設定します(ヘルプ | アクションの検索に移動するか、Ctrl+Shift+A を押して、レジストリと入力し、キーを名前で検索します)。

    バージョン 2022.3 以降、CLion はリモートホストでの圧縮に pigz(英語) を使用して、gzip の代わりにヘッダー検索パスをローカルホストに同期します。このマルチスレッド化された gzip の実装により、作業が高速化されます。

ビルド、実行、デバッグ

リモートツールチェーンと対応する CMake プロファイルが設定されたため、Run/Debug 設定スイッチャーで適切な CMake プロファイルを選択することで、完全にリモートの方法でアプリケーションとテストを構築、実行、デバッグできます。

cmake profile for remote

以下では、実行される OS に応じてアプリケーションの出力がどのように変化するかを示すデモを見つけることができます。macOS をローカルシステムとして、Ubuntu ターゲットにリモートで接続し、OS 名を確認します。この例では、コードのハイライトは OS 識別子に依存するため、CMake プロファイルを切り替えるか、コンテキストを解決すると、CLion は対応するコードブランチをハイライトします。

choose build configuration for remote run
  1. 新しいネイティブアプリケーション構成を作成するか、既存の構成を編集します。

  2. 実行可能ファイルフィールドで、CLion がリモートバイナリを指すようにします。

    Remote executable in the configuration settings
  3. 構成を保存し、それを使用して Makefile アプリケーションをリモートで実行またはデバッグします。

    環境変数を設定する

    1. リモート OS の環境変数を構成するには、.bashrc ファイルの先頭の # If not running interactively, don't do anything 行の前に指定します。

      プライマリシェルが bash でない場合は、その特定のシェルの指示に従うか、PermitUserEnvironment yessshd_config ファイルに追加し、sshd サービスを再起動してから、~/.ssh/environment で変数を構成します。

    IPv6 サポートを有効にする

    • IPv6(英語) ネットワークに接続するには、CLion JVM オプションで調整する必要があります。

      1. メインメニューからヘルプ | カスタム VM オプションの編集を実行します。開いた *.vmoptions ファイルで、-Djava.net.preferIPv4Stack=true 行を削除して次の行を追加します。

        -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true -Djava.net.preferIPv6Addresses=true
      2. CLion を再起動してください。

    • 生アドレスの代わりにホスト名を使用するには、Windows では Administrator として C:\Windows\System32\Drivers\etc\hosts を開き、macOS/Linux ではスーパーユーザーとして /etc/hosts を開き、必要なアドレスを対応するホスト名にマッピングします。

      各アドレスは別々の行に配置し、その後に少なくとも 1 つの空白と空白で区切ったホスト名のリストを続けます。次に例を示します。

      f381::171d:c61c:c7f3:3a56 my.dev.host1 my.dev.host2 f381::171d:c61c:c7f3:3a26%en0 my.dev.host3
    • macOS では、禁止されているネットワークインターフェースのリストも指定する必要があります。

      1. Ctrl+Shift+A を押すか、メインメニューからヘルプ | アクションの検索を選択します。開いたポップアップで、Registry の入力を開始し、対応する項目を選択して Enter を押します。

      2. deployment.macOs.bannedInterfaces キーを見つけて、禁止するインターフェースのコンマ区切りリストを設定します(例: awdl0,bridge0,en1,en2,lo0,p2p0,utun0,utun1)。

    関連ページ:

    Docker ツールチェーン

    Docker コンテナーでの開発を目的として、CLion は、専用の Docker ツールチェーンを介して完全な Docker 統合を提供します。詳細については、このビデオを参照してください。サンプル DockerfileCLion で Docker 開発を開始できるように、Ubuntu ベースイメージの場合の Dockerfile の例を作成しました。このファイルをプロジェクトにコピーしてニーズに合わせて調整するか、参照として使用することができます。サンプルファイルには、次の行とセクションが含まれ...

    詳細な構成

    IDE 設定で使用できる標準オプションに加えて、CLion を使用すると、基盤となるプラットフォームと Java ランタイムの低レベルの構成を実行できます。JVM オプション:CLion は、パフォーマンスを制御するさまざまなオプションを備えた Java 仮想マシン (JVM) 上で実行されます。CLion の実行に使用されるデフォルトのオプションは、IDE インストールディレクトリで指定されます。<IDE_HOME>\bin\clion64.exe.vmoptionsCLion....

    SSH 構成を作成する

    CLion では、リモートサーバーの SSH 接続パラメーターを専用の SSH 構成として保存できます。作成された構成は、リモートインタープリターの構成、SFTP デプロイサーバーへの接続、SSH セッションの起動に使用できます。設定ダイアログで、に移動します。既存のすべての SSH 構成を一覧表示する左側のペインで、をクリックします。このプロジェクトでのみ表示するチェックボックスを使用して、このサーバーアクセス構成を他のプロジェクトで再利用できるようにします。チェックボックスを選択して、SSH...

    CMake プロファイル

    CMake プロジェクトのビルドに必要な設定は CMake プロファイルに組み込まれています。これには、ツールチェーンとビルド型に加え、ジェネレーターや環境変数などの CMake オプションが含まれます。たとえば、異なるコンパイラーを使用したり、異なる設定でターゲットをビルドしたりするために、プロジェクトに複数のプロファイルを構成できます。プロファイル設定にアクセスする次のいずれかを実行して、CMake プロファイル設定を開きます。に移動します。を押してアクションの検索ダイアログを開き、CMake...

    デプロイ

    このページでは、CLion とサーバー間の相互作用を制御できるサーバーアクセス構成とサーバーグループを作成、編集、削除します。サーバーを使用する場合は常に、サーバーがリモートホスト上にあるかコンピューター上にあるかに関係なく、サーバーアクセス構成を定義する必要があります。ツールバーのアイコンとコンテキストメニューのコマンド:ツールバーのボタンとコンテキストメニューのコマンドを使用して、構成とサーバーグループのリストを管理します。左側のペインには、CLion で使用可能なすべてのサーバーアクセス...

    Docker プラグインの統合

    Docker は、分離された再現可能な環境で実行可能ファイルをデプロイおよび実行するためのツールです。これは、たとえば、本番環境と同じ環境でコードをテストする場合に役立ちます。CLion は Docker 機能を統合し、Docker イメージの作成、Docker コンテナーの実行、Docker Compose アプリケーションの管理、パブリックおよびプライベート Docker レジストリの使用など、IDE から直接実行するための支援を提供します。Docker プラグインを有効にするこの機能は、デフ...