CLionの良くある質問と答え

先日CLionのパブリックEAPをリリースしたあと、Twitterやメール、YouTrack、掲示板にて沢山のフィードバックを頂いておりJetBrainsは正直なところ過負荷に陥っております。皆様の声に感謝すると共に、ここに良くある質問と答えをまとめたいと思います。

ツールの選択肢

Q: CLionを使う上でCMakeを使わなければなりませんか?

A: はい。CLionは現在のところCMakeベースのプロジェクトのみサポートしています。

Q: 今忙しいですか他のビルドシステムをサポートする予定はありますかいつになりますか?

A: はい、予定には入っています。YouTrackのフィーチャーリクエストをご覧頂き、ご希望のものがあれば是非投票したりコメントしたりしてください。CLionバージョン1.0ではCMakeのみのサポートとなります。それ以降については皆様のフィードバックを元に決めて参ります。現在のところ人気のある機能リクエストは以下の通りです:

Q: Windowsで必要なツールチェーンは何ですか?

A: 選択肢として2つあり、Cygwin かMinGWをお使いいただけます。具体的には以下のように設定してください:

  • Cygwin: 最新の64-bitバージョンをダウンロードし、インストール時にgcc/g++、cmake、make、gdb 7.8を指定してください。
  • MinGW: CLionは現在オフィシャルサイトより取得できるMinGWx32 3.20のみサポートしています。MinGWをアップグレードする際にいくつか問題が発生することもわかっています。もし問題が発生したら最初からインストールし直すか、source forgeのバージョンをお試しください。MinGWx64バージョンはまだサポートしていません。必要な場合はこちらのissueをウォッチしてください。さらにmakeとgcc/g++ パッケージをインストールするのを忘れないでください。CLionと連携するのに必ず必要です。

Q: 初期画面で選択したツールチェーンを後から変更できますか?

A: Preferences/Settings | Build, Execution, Deployment | Toolchainsより変更できます。

Q: どのコンパイラを使えますか?またどうしたらコンパイラを変更できますか?

A: 現在のところCLionはGCCとClangコンパイラをサポートし、ライブラリやヘッダーパスもそれらを経由して取得します。次のリリースではサポート対象のコンパイラを増やす予定です。

コンパイラを変更するにはCMakeツールウィンドウのCacheタブよりコンパイラのパスをCMAKE_CXX_COMPILER変数に指定、Enterを押してから”Apply Changes and Reload”ボタンを押してください:

cmakecache

CMakeの設定

Q: CLionからCMakeに渡す環境変数やパラメータはどこから指定すれば良いですか?

A: 現在2つの方法があります: CMakeLists.txtファイルに指定するか、CMakeCacheから指定する方法です。将来、別のオプションとして設定する方法を提供する予定(CPP-188)もあります。

独自の変数を指定したい場合はこちらの回避策をご参照ください。(これは現在のビルドにある既知の問題のためです)

Q: CLionのビルド出力パスは変更できますか?

A: 以下のようにCMake変数を指定すれば簡単に変更できます:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "my_dir")

GUIで設定したい場合はこちらのissueをご参照ください。

また、Run/Debug Configurations ダイアログ(Run | Edit Configurations…)からはプログラムの実行時のパラメータ、ワーキングディレクトリ、環境変数を指定することができます。

Q: CLionがいくつかのヘッダファイルを検出してくれません。どうしたらよいですか?

A: CLionはCMakeと同じようにヘッダファイルを探します。CMakeのINCLUDE_DIRECTORIES変数を指定してCLionが認識できるようにしてください。

ちなみにこちらのwikiに便利なCMake変数の説明が詳しく書いてあります。特にCMakeに明るくない方は是非ご参照ください。

Q: コンパイルは成功しますが、リファクタリングやシンタックスハイライトが正しく働きません。

A: 恐らくプロジェクトファイルが正しく認識されていません。(この場合ファイルはグレーアウトしています):

non-project-files

CMakeLists.txtファイル内において以下の書式で書かれている情報を取得しています:

set(SOURCE_FILES main.cpp)

add_executable(my_exec ${SOURCE_FILES})

これによりCLionはmain.cppがプロジェクトに含まれていると認識します。現在のところ、ヘッダーファイルも同様にプロジェクトに取り込まれます。

デバッグ

Q: 自分のプロジェクトではデバッグに失敗します

A: 古いLinuxディストリビューションではバンドルされているGDBとCMakeに問題があり 高いC/C++ ABIレベルを必要とします。なるべく早い段階で修正すべく開発を進めています。現在のところ、CMake 2.8とGDB 7.8を使うことで回避していただけます。

Q: LLDBをサポートする予定はありますか?

A: はい。ぜひこちらのissueをウォッチしてください。

キーマップ、ショートカット

Q: Visual Studio / Xcode などのキーマップが好みですが、CLionではどのように設定すれば良いですか?

A: CLionは様々なキーマップをサポートします。Preferences/Settings | Appearance and Behavior | Keymapよりお好みのものを選択してください。またはCtrl+`を押すことで素早く切り替えられます。

Q: 特定のショートカットがうまく働きません。どうしたら良いですか?

A: バグレポートをする前に以下のことをお試しください:

  • CLionショートカットがシステムレベルのショートカットと衝突していないか
  • 現在指定しているキーマップセットとは違うショートカットを押していないか

どちらにも当てはまらない場合はYouTrackへ報告してください。

ちなみに、JetBrainsお勧めのトップ10ショートカットは以下の通りです:

  • クイックフィックス(Alt+Enter): インテンションアクションやクイックフィックスの提示
  • スマートコンプリ—ション(Ctrl+Shift+Space): 通常のコード補完よりも正確な補完候補を提示(カーソル位置の型などから類推します)
  • ここをリファクタ(Ctrl+T): 現在のカーソル位置で有効なリファクタリングアクションを提示
  • パラメータ情報(Ctrl/Cmd+P): メソッドの引数を型情報と共にポップアップ:parameter_info
  • 関連するシンボルへジャンプ(OS X: Ctrl+Cmd+↑、Windows/Linux: Ctrl+Alt+Home): .hと.cpp間などを双方向にジャンプ
  • コード生成(OS X: Cmd+N、Windows/Linux: Alt+Insert): コード生成オプションをポップアップ
  • コードを囲む(Cmd/Ctrl+Alt+T) : if..else、do..while、#ifdefなどで選択したコードを囲むオプションをポップアップ
  • 使用箇所を探す(Alt+F7): 選択しているシンボルを参照している箇所を検索
  • ファイル構造(Cmd/Ctrl+F12): ファイル内のメソッドやフィールド定義などにジャンプfile_structure
  • アクションの検索(Shift+Cmd/Ctrl+A): アクション名で検索できるポップアップを表示

その他の質問

Q: タイプや補完などが遅い

A: どのような状況で遅くなるのか調べるため、皆様より詳しい情報をいただければ幸いです。現象を再現できるプロジェクトや、可能であればCPUのスナップショットをこちらeに記載してある方法で取得して送ってください

Q: CLionは有償の製品ですか?IntelliJ IDEAのプラグインとして使えるようになりますか?

A: CLionはオープンソースのIntelliJ Platform上に構築された有償の製品です。他のJetBrains製品と同じくCLionは無償から有償のものまで様々なライセンスの選択肢をご用意する予定です。

少なくともCLion 1.0リリースまではIntelliJ IDEAのプラグインとして使えるようにする予定はありません。今後検討いたします。

Q: CLionのプラグインを書くことは出来ますか?

A: はい。他のIntelliJ Platform製品と同じくCLionのプラグインはどなたでも開発することができます。詳しくはConfluenceのページをご覧ください。バージョン1.0リリースまではAPIは安定せず、修正しないと将来のバージョンで動かなくなる可能性もあります。

原文

image description