ローカルソースを使用したリモート
このリモートモードを使用すると、SSH(英語) 経由で接続されたリモート Linux マシンを対象とする macOS、Linux、Windows デスクトップ上の CLion で作業できます。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 の外部で構成されている場合に、ソース同期なしでリモート開発をセットアップして不要なファイルの重複を回避できます。
このためには、接続タブを開き、接続タイプをローカルまたはマウント済みフォルダーに変更してから、パスマッピングをセットアップします(Docker の場合、マップされたボリュームを指定します)。
CLion は、CMake の再ロード時に常に CMake ビルドフォルダーをダウンロードします。ただし、ローカルまたはマウント済みフォルダーデプロイタイプが選択されていて、CMake ビルドフォルダーが既存のパスマッピングのいずれかに格納されている場合は、これをスキップできます。
SFTP 接続のデプロイプロセスは、Rsync ツールを使用して高速化できます。macOS および Linux では、Rsync サポートはデフォルトで有効になっています。Windows では、デプロイ設定でダウンロード / アップロードに Rsync を使用チェックボックスを選択して有効にする必要があります。
除外対象パス
デフォルトでは、CLion は、CMakeLists.txt にリストされているすべてのディレクトリにインデックスを付けて同期します。ただし、ディレクトリをマーク | 除外アクションを使用してディレクトリを除外すると、そのディレクトリはリモートデプロイの除外されたパスとしてマークされ、リモートマシンと同期されません。これは、リモートツールチェーンを構成する前にフォルダーを除外すると自動的に実行されます。
デプロイエントリ設定の専用タブで、除外されたパスを確認および調整できます。
リモートツールチェーンが構成されていて、プロジェクトがすでに同期されているときにディレクトリを除外としてマークすると、CLion は除外されたパスを更新するように提案します。更新後、除外されたフォルダーはさらに同期されます。
以前に除外されたディレクトリの除外を解除すると、CLion は、除外されたパスのリストを更新し、フォルダーをリモートホストに再アップロードすることを提案します。
ヘッダー検索パスの再同期
コードを正しく解決するために、CLion は、ヘッダー検索パスをリモートマシンからローカルクライアントへのすべてのコンテンツと同期します。たとえば、標準ライブラリヘッダーはターゲットから取得されますが、CLion エディターでローカルに作業しているかのようにそれらに移動できます。
ただし、ヘッダー検索パスの同期には時間がかかる可能性があるため、CLion は最初のファイル転送時にのみ自動的に同期を実行します。その後、CMake または Makefile の再ロードによってトリガーされません。コンパイラーを切り替えたり、プロジェクトの依存関係を変更したりするたびに、
を呼び出してヘッダー検索パスを手動で更新してください。自動同期に切り替えることもできます。レジストリで clion.remote.resync.system.cache キーを設定します(
に移動するか、Control+Shift+A を押して、レジストリと入力し、キーを名前で検索します)。バージョン 2022.3 以降、CLion はリモートホストでの圧縮に pigz(英語) を使用して、gzip の代わりにヘッダー検索パスをローカルホストに同期します。このマルチスレッド化された gzip の実装により、作業が高速化されます。
ビルド、実行、デバッグ
リモートツールチェーンと対応する CMake プロファイルが設定されたため、Run/Debug 設定スイッチャーで適切な CMake プロファイルを選択することで、完全にリモートの方法でアプリケーションとテストを構築、実行、デバッグできます。
以下では、実行される OS に応じてアプリケーションの出力がどのように変化するかを示すデモを見つけることができます。macOS をローカルシステムとして、Ubuntu ターゲットにリモートで接続し、OS 名を確認します。この例では、コードのハイライトは OS 識別子に依存するため、CMake プロファイルを切り替えるか、コンテキストを解決すると、CLion は対応するコードブランチをハイライトします。
新しい Makefile アプリケーション構成を作成するか、既存の構成を編集します。
実行可能ファイルフィールドで、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 では 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.host3macOS では、禁止されているネットワークインターフェースのリストも指定する必要があります。
Control+Shift+A を押すか、メインメニューから
を選択します。開いたポップアップで、Registry
の入力を開始し、対応する項目を選択して Enter を押します。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.a...
CMake プロファイル
CMake プロジェクトのビルドに必要な設定は CMake プロファイルに組み込まれています。これには、ツールチェーンとビルド型に加え、ジェネレーターや環境変数などの CMake オプションが含まれます。たとえば、異なるコンパイラーを使用したり、異なる設定でターゲットをビルドしたりするために、プロジェクトに複数のプロファイルを構成できます。プロファイル設定にアクセスする次のいずれかを実行して、CMake プロファイル設定を開きます。に移動します。を押してアクションの検索ダイアログを開き、CMake...
デプロイ
このページでは、CLion とサーバー間の相互作用を制御できるサーバーアクセス構成とサーバーグループを作成、編集、削除します。サーバーを使用する場合は常に、サーバーがリモートホスト上にあるかコンピューター上にあるかに関係なく、サーバーアクセス構成を定義する必要があります。ツールバーのアイコンとコンテキストメニューのコマンド:ツールバーのボタンとコンテキストメニューのコマンドを使用して、構成とサーバーグループのリストを管理します。左側のペインには、CLion で使用可能なすべてのサーバーアクセス...
Docker プラグインの統合
Docker は、分離された再現可能な環境で実行可能ファイルをデプロイおよび実行するためのツールです。これは、たとえば、本番環境と同じ環境でコードをテストする場合に役立ちます。CLion は Docker 機能を統合し、Docker イメージの作成、Docker コンテナーの実行、Docker Compose アプリケーションの管理、パブリックおよびプライベート Docker レジストリの使用など、IDE から直接実行するための支援を提供します。Docker プラグインを有効にするこの機能は、デフ...
Makefile プロジェクト
CLion での Makefile プロジェクトの完全なサポートは、まだ進行中の作業です。CPP-494 にリンクされたチケットを使用して、フィードバックを残し、希望する機能に投票してください。Makefile プロジェクトを開くメインメニューからを選択します。CLion に、最上位の Makefile が含まれているフォルダーまたはそのファイルを直接ポイントします。開いたダイアログで、プロジェクトとして開くをクリックします。プロジェクトをクリーンアップするように求められます。Make ビルドはインク...