C/C++のIDEとしてCLionがマルチプラットフォームで便利

C++を書くときのIDEとしてはVisual Studioが良いという話はよく聞きますが、残念ながらMacだとVisual Studioは使えません。MacとWindowsで同じ環境を使いたいという際にもVisual Studioならば困ってしまいます。

![スクリーンショット 2016-07-07 16.23.04.png](https://qiita-image-store.s3.amazonaws.com/0/2382/89b7e67c-bb48-48d2-1359-fae7ac7d5289.png)

たまたま、社内の人が[CLion(しーらいおん)](https://www.jetbrains.com/clion/)いいよと言ってたので、CLion使ってみたら思ったより良かったのでここにインストールと簡単な使用方法を書いておきます。またMacとWindowsでCLion 2017.1で動作確認しています。Linuxでも問題なく動くと思われます。

なお、自分が勤めている会社ではCLion含めてJetBrainのIntelliJ IDEAなどのIDEのライセンスを買っており使うことができました。CLionは無料体験も30日できる他、学生のメールアドレスを持っていれば無料で使うことができます。学生の方は[このページ](https://www.jetbrains.com/student/)の Apply Nowボタンから学生メアドでapplyすることでJetBrainアカウントを作り、起動時にRegisterすることで無料で利用できます。

# インストール

https://www.jetbrains.com/clion/download/ から自分のプラットフォームにあったものをダウンロードしてインストールします。CMakeはバンドルされているものを使い、基本的にはデフォルト設定でインストールすることをおすすめします。

インストールの詳細はこちらに[チュートリアル(英語)](https://www.jetbrains.com/help/clion/2017.1/quick-cmake-tutorial.html)があります。

なお[Windows](https://www.jetbrains.com/help/clion/2017.1/quick-tutorial-on-configuring-clion-on-windows.html)では[MinGW](http://www.mingw.org/)をインストールしてhomeフォルダを設定する必要があります。

![キャプチャ1.PNG](https://qiita-image-store.s3.amazonaws.com/0/2382/da76a8c3-5274-a8c3-4329-a0370e9c9bc0.png)

上記のようにMinGWのhomeを設定するダイアログがインストール時に表示されます。

[http://www.mingw.org/](http://www.mingw.org/)の右上のボタンのDownload Installerからダウンロードできるインストーラーを利用したインストールをして中で、

![キャプチャ2.PNG](https://qiita-image-store.s3.amazonaws.com/0/2382/c5498656-41c2-df78-b95c-8f290cc2dd6a.png)

- mingw32-developer-tool
- mingw32-base
- mingw32-g++
- msys-base

をインストールしておけば大丈夫です。上記の項目を右クリックから、Mark for Installationのチェックをいれてメニューの Installation > Apply Change を実行してインストールを完了したことを確認の後、インストーラーを閉じてください。そして、MinGWのパス、CMakeのcmake.exeのパスが起動時に求められますので設定します。

すでに起動済みであれば、Settings > Build, Execution, Deployment > Toolchins の中に設定する場所があります。

![キャプチャ3.PNG](https://qiita-image-store.s3.amazonaws.com/0/2382/e8da7ffc-751e-7a68-41f7-0899706a437a.png)

こんな感じで設定して利用できます。

# 起動と実行

![スクリーンショット 2017-04-05 14.34.01.png](https://qiita-image-store.s3.amazonaws.com/0/2382/24a44995-6fd8-e2bc-56df-1b35f69e449d.png)

起動するとこんな画面で、New Projectでプロジェクトを作ります。自分はstudyという名前のプロジェクトを作りました。

![スクリーンショット 2017-04-05 14.58.11.png](https://qiita-image-store.s3.amazonaws.com/0/2382/5dfe5981-1956-93de-add5-27f096489b96.png)

プロジェクトができると以下のように表示されます。

![スクリーンショット 2016-07-07 14.23.25.png](https://qiita-image-store.s3.amazonaws.com/0/2382/756cd007-b886-dc21-e05e-a3a9e24fdfe6.png)

起動するとこんな感じでC++のひな形がてきています。右上の、![スクリーンショット 2016-07-07 14.30.38.png](https://qiita-image-store.s3.amazonaws.com/0/2382/dda49287-58d2-58a0-9f79-7245e5a6e2e2.png) ボタンを押すと実行されます。

![スクリーンショット 2017-04-05 15.06.03.png](https://qiita-image-store.s3.amazonaws.com/0/2382/5fe00a26-ef74-b48d-ef7b-69de8eaa7d68.png)


こんなに簡単に実行してくれます。Hello World!が表示されました。

# コードアシスト

コードを書いてみるとちゃんとコードアシストもしてくれます。STLのメソッド名とか覚えてないのでこれは本当にありがたいです。(C++は日本語の[リファレンス](https://cpprefjp.github.io/)が整備されていて便利ですが...。）

![スクリーンショット 2016-07-07 14.26.54.png](https://qiita-image-store.s3.amazonaws.com/0/2382/efef6d54-3380-ab96-cf43-86b007fa986a.png)

# ブレークポイントとステップ実行

無論ブレークポイントも貼れます。コードの左側をクリックしてブレークポイントを貼って![スクリーンショット 2016-07-07 14.30.49.png](https://qiita-image-store.s3.amazonaws.com/0/2382/4f2c10a5-77f4-c87b-6629-af17d93c0f76.png)でバッグ実行すると、

![スクリーンショット 2016-07-07 14.27.41.png](https://qiita-image-store.s3.amazonaws.com/0/2382/a15f85b4-d8d2-2381-8876-a50f06b4d021.png)

ちゃんとステップ実行されて、変数の確認もできます。便利。

# リファクタリング

IDEAなどにある変数名のリファクタも健在。

![スクリーンショット 2016-07-07 16.17.13.png](https://qiita-image-store.s3.amazonaws.com/0/2382/a490bea0-d606-3ff2-b877-646b81387c12.png)

![スクリーンショット 2016-07-07 16.13.16.png](https://qiita-image-store.s3.amazonaws.com/0/2382/6039fe90-21ac-1da9-0a9d-d4d8961a8bc9.png)

![スクリーンショット 2016-07-07 16.13.23.png](https://qiita-image-store.s3.amazonaws.com/0/2382/ebbf8de3-b303-5e6c-173e-85318af3309f.png)

このように変数も安全に名前を変えることができました。

# 既存の関数のコードアシスト

自分で作った関数の補完も問題なくやってくれます。

![スクリーンショット 2016-07-07 16.15.22.png](https://qiita-image-store.s3.amazonaws.com/0/2382/3bc5b6d2-c66b-14eb-148b-968c0dfe765b.png)

# C言語も書ける
.c 拡張子のファイルを用意するだけで特に問題なくC言語もかけるようでした。

![キャプチャ1.PNG](https://qiita-image-store.s3.amazonaws.com/0/2382/92c5c352-50fc-1560-0928-67a5f29ad82d.png)

![キャプチャ2.PNG](https://qiita-image-store.s3.amazonaws.com/0/2382/813cad9c-aef0-7d0f-d74b-810ca90f3bd5.png)

C言語を書くときにもしっかり利用したいなと思います。

# コマンドプロンプトやターミナルでビルドしたい時

Macならターミナル、WindowsならMingGW Command Promptを立ち上げて、

```
g++ main.cpp
```

で、a.outかa.exeなんかをビルドすることができるので随時それを使ってください。


# 最後に

C++、自分は殆ど競技プログラミングでしか書くことがなかったのですが、毎回STLのAPIを調べながらLinux上でvimで書いているのが結構面倒でした。CLionを使うと結構楽ができそうな感じがするので、ちょっと使い続けてみようかなと思います。よく使うコードなどをLiveTemplateなどに登録しておくのも良いかもしれません。

あと、Qiitaで調べてみたら http://qiita.com/ShigekiKarita/items/a75c8fcaa23041b6a8a1 でGoogle Testとかもできるらしいので今度やってみたいところ。