ローカルソースを使用したリモート
このリモートモードを有効化すると、macOS、Linux、Windows デスクトップ上の CLion で、 SSH 経由で接続されたリモート Linux マシンをターゲットに作業できます。 Raspberry Pi(英語) などのシングルボードコンピューター上の組み込みシステムを含む Linux ベースのターゲット を選択できます。 また、プログラムはクラウドプラットフォーム上や、たとえば Docker コンテナー内で起動することもできます。
このモードでは、IDE インスタンスがローカルで実行され、ソースファイルもローカルクライアントに配置され、リモートホストへの自動同期が行われます。 リモートホスト側では、CLion がホストコンパイラーと CMake/make を使用してコンパイルとビルドを実行し、デバッグにホスト GDB を使用して、リモートターゲットでアプリケーションを実行します。
ワークフローの手順
資格情報を提供し、接続を確認
ツールの検出を待ち、必要に応じて手動でパスを指定します。
リモートツールチェーンを デフォルト か、 関連する CMake プロファイルを作成します。
必要に応じて、デプロイエントリのパスマッピングを調整します。
デフォルトプロファイル を使用するか、ビルド、実行、デバッグ用に ステップ 2 からのプロファイル を選択します。
資格情報を提供し、接続を確認
ツールの検出を待ち、必要に応じて手動でパスを指定します。
でリモートツールチェーンに切り替えます。
必要に応じて、デプロイエントリのパスマッピングを調整します。
を呼び出します。
構成設定で、 実行可能ファイル をリモートバイナリに指定します。
Windows クライアントの仕様
Windows クライアント で作業するときは、次の点に注意してください。
IntelliJ プラットフォームの 問題 のため、 idea.properties ファイルで プロパティ値
idea.case.sensitive.fs=trueを設定する必要があります(プロパティファイルにアクセスするには、メインメニューから を選択)、その後、キャッシングリセット付きで CLion を再起動してください()。Windows でのファイル同期の場合、デフォルトでは、CLion は独自の リモートホストアクセス と、 tar ユーティリティを使用したホスト側の圧縮に依存します。 このメカニズムは、macOS および Linux での Rsync ツールによる同期よりも遅く動作します。 Windows で Rsync 同期を有効にするには、 デプロイ設定で ダウンロード / アップロード / 同期に rsync を使用する。 チェックボックスをオンにします。
リモート認証情報を使用してツールチェーンを作成する
に進みます。
をクリックし、 リモートホスト を選択します。

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

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

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

新しく作成したツールチェーンを デフォルト のツールチェーンにすることができます(このために、
をクリックしてツールチェーンリストの一番上に移動します)。 デフォルトとして設定すると、リモートツールチェーンは、CLion で作成して開くすべてのプロジェクトに使用されます。
CMake プロジェクトの場合、リモートツールチェーンをデフォルトとして設定すると、 デフォルトの CMake プロファイル が自動的に接続されるため、個別の CMake プロファイルを構成する必要はありません。
(CMake)対応する CMake プロファイルを作成する
に進みます。
をクリックして新しい CMake プロファイルを作成し、 ツールチェーン フィールドを使用してリモートツールチェーンに接続します:

または、リモートツールチェーンを デフォルトとして設定し、 デフォルトを使用する を選択します。
変更を適用 します。
(Makefile)Makefile 設定でリモートツールチェーンを選択する
に進みます。
ツールチェーン フィールドでリモートツールチェーンを選択します。

または、リモートツールチェーンを デフォルトとして設定し、 デフォルトを使用する を選択します。
変更を適用 します。
ファイル転送 ツールウィンドウ( )を使用して、ファイル同期の進行状況を監視します。

デプロイ構成を確認して調整する
リモートツールチェーンの接続エンティティを作成すると、CLion はそれを の サーバーアクセス構成リストに追加します。
CLion は、プロジェクトコード同期のパスを自動的に構成します。 マッピング タブを使用して、デフォルトのマッピングを変更します(たとえば、デフォルトの tmp フォルダーではなく、コピーされたソースの特定のリモートディレクトリを設定します)。

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

プロジェクトをリモートマシンにアップロードする際、CLion は最上位の CMakeLists.txt を含むディレクトリをプロジェクトルート(CPP-23995 )として使用します。 最上位の CMakeLists.txt が別のサブディレクトリにある場合は、 マッピング タブでローカルパスを変更します。
Makefile プロジェクトをリモートマシンにアップロードする場合、CLion は Makefile を含むディレクトリをプロジェクトルートとして使用します(一般チケット CPP-23995 参照)。 Makefile が別のサブディレクトリにある場合は、 マッピング タブでローカルパスを変更します。
ローカルマシンとリモートマシンがマウントされたボリュームを共有している場合(例えば Docker コンテナを利用する場合)、あるいは CLion の外部で 3rd-party 同期が設定されている場合、 ソース同期なし でリモート開発をセットアップして不要なファイル重複を回避できます。
このためには、 接続 タブを開き、接続タイプを ローカルまたはマウント済みフォルダー に変更してから、パスマッピングをセットアップします(Docker の場合、マップされたボリュームを指定します)。

CLion は CMake の再読み込み時に常に CMake ビルドフォルダーをダウンロードします。 ただし、 ローカルまたはマウント済みフォルダー デプロイタイプが選択されていて、CMake ビルドフォルダーが既存のパスマッピングのいずれかに格納されている場合は、これをスキップできます。
SFTP 接続のデプロイプロセスは、Rsync ツールを使用して高速化できます。 macOS および Linux では、Rsync サポートはデフォルトで有効になっていますが、Windows では、 デプロイ設定で ダウンロード / アップロード / 同期に rsync を使用する。 チェックボックスを選択して有効にする必要があります。
除外対象パス
デフォルトでは、CLion は CMakeLists.txt にリストされているすべてのディレクトリを解析して同期します。 ただし、 ディレクトリをマーク | 除外 アクションを使用してディレクトリを 除外すると、リモート(デプロイ)では 除外されたパス としてマークされ、リモートマシンとは同期されません。 これは、リモートツールチェーンを設定する前にフォルダーを除外すると自動的に実行されます。
デプロイエントリ設定の専用タブで、除外されたパスを確認および調整できます。

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

以前に除外されていたディレクトリの除外を解除すると、CLion から除外パスの更新と、フォルダーのリモートホストへの再アップロードが提案されます。

ヘッダー検索パスの再同期
コードを正しく解決するために、CLion は、 ヘッダー検索パス をリモートマシンからローカルクライアントへのすべてのコンテンツと同期します。 たとえば 、標準ライブラリヘッダーはターゲットから取得されますが、CLion エディターでローカルに作業しているかのようにそれらに移動できます。
ただし、ヘッダー検索パスの同期には時間がかかる可能性があるため、CLion は最初のファイル転送時にのみ自動的に同期を実行します。 その後、CMake または Makefile の再ロードによってトリガーされません。 コンパイラーを切り替えたり、プロジェクトの依存関係を変更したりするたびに、 を呼び出してヘッダー検索パスを手動で更新してください。
自動同期に切り替えることもできます:Registry で clion.remote.resync.system.cache キーを設定してください( または Ctrl+Shift+A を押し、 Registry と入力して、キー名で検索)。
バージョン 2022.3 以降、CLion はリモートホストでの圧縮に pigz を使い、 gzip の代わりにヘッダー検索パスをローカルホストへ同期します。 このマルチスレッド化された gzip の実装により、作業が高速化されます。
ビルド、実行、デバッグ
リモートツールチェーンと対応する CMake プロファイルが設定されたため、Run/Debug 設定スイッチャーで 適切な CMake プロファイルを選択する とで、完全にリモートの方法でアプリケーションとテストを構築、実行、デバッグできます。

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

新しい ネイティブアプリケーション構成を作成するか、既存の構成を編集します。
実行可能ファイル フィールドで、CLion が リモート バイナリを指すように指定してください。

構成を保存し、それを使用して Makefile アプリケーションをリモートで実行またはデバッグします。
環境変数を設定する
リモート OS の環境変数を構成するには、 .bashrc ファイルの先頭の
# If not running interactively, don't do anything行の前に指定します。プライマリシェルが bash でない場合は、その特定のシェルの指示に従うか、
PermitUserEnvironment yesを sshd_config ファイルに追加し、 sshd サービスを再起動してから、 ~/.ssh/environment で変数を構成します。
IPv6 サポートを有効にする
IPv6(英語) ネットワークに接続するには、CLion JVM オプションで調整する必要があります。
メインメニューから を実行します。 開いた *.vmoptions ファイルで、
-Djava.net.preferIPv4Stack=true行を削除して次の行を追加します。-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true -Djava.net.preferIPv6Addresses=trueCLion を再起動してください。
生のアドレスの代わりに ホスト名 を使用するには、Windows で管理者として 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.host3macOS では、禁止されているネットワークインターフェースのリストも指定する必要があります。
Ctrl+Shift+A を押すか、メインメニューから を選択します。 開いたポップアップで、
レジストリの入力を開始し、対応する項目を選択して Enter を押します。deployment.macOs.bannedInterfaces キーを見つけて、禁止するインターフェースのコンマ区切りリストを設定します(例:
awdl0,bridge0,en1,en2,lo0,p2p0,utun0,utun1)。