SublimeText3でC++を気軽に実行する環境を作る。

# SublimeText3にC++が動く環境を追加する。

## 前提
環境
Windows7
SublimeText3には、いろいろカスタマイズ（日本語化など）してインストール済み。

「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」という本を手に入れたので手軽に動作確認できるC++環境を作ってみました。

本格的に開発するなら[Visual Studio2015](https://www.microsoft.com/ja-jp/dev/products/visual-studio-2015.aspx)をインストールすれば良いのでしょうが、一からVisual Studioの操作を覚えるのはいろいろと面倒です。
せっかくならSublimeText3からRubyを気軽に試すように、C++も気軽に試せる環境を作りました。

## 環境のインストール開始

コマンドプロンプトを立ち上げ**gcc**がインストールされているかどうかを見る。

gccとは、GNUプロジェクトが開発・公開しているコンパイラ。
[gcc 【 GNU Compiler Collection 】： IT用語辞典](http://e-words.jp/w/gcc.html)

コンパイラとは、人間が理解しやすい言語や数式で記述されたプログラムを、機械語に（あるいは、元のプログラムよりも低いレベルのコードに）変換するプログラムのこと。
[コンパイラ - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9)

コマンドラインから
`gcc --version`
と打つ。

![gccversion.png](https://qiita-image-store.s3.amazonaws.com/0/44761/b7b8fa2b-1db9-50da-2ab7-08ee8d2a75ad.png)

インストールされているとこのように表示される。

インストールされてない場合は
MinGW - Minimalist GNU for Windows download | SourceForge.net
http://sourceforge.net/projects/mingw/
からダウンロードしてインストールする。

[MinGWとは - Weblio辞書] (http://www.weblio.jp/content/MinGW)
フリーのコンパイラであるGCCを、Windowsでの開発に利用できるようにするツール。

ダウンロードしたファイルを実行後、
install＝＞インストールするフォルダを指定する。
continue＝＞ダウンロードが始まる。
ダウンロードが終わったら＝＞continueボタンを押す。

MinGWのインストールが終わるとMinGW Installation Managerが開く。

mingw-developer-toolkit
mingw32-base
mingw32-gcc-g++
この3つにチェックを入れて（Mark for Installation）、左上のInstallationからApply Changesボタンでインストールを進める。

システム環境変数の設定。
OSにパスを通す。
スタートボタン＝＞コントロールパネル＝＞システム＝＞システムの詳細設定
システムのプロパティというウィンドウが開く。
詳細設定というタブから、環境変数というボタンをクリック。
システム環境変数のPathをマウスで選択してから編集ボタンを押す。

Pathの先頭にインストールしたフォルダを追加する。
自分が設定したPathは、
`Y:\2016\mingw\bin;Y:\2016\mingw\msys\1.0\bin;`
と追加した。

`path文字列`
↓
`Y:\2016\mingw\bin;Y:\2016\mingw\msys\1.0\bin;Path文字列`
というような形になる。

これで一旦コマンドプロンプトのウィンドウを閉じて再起動させる。
（パスを反映させるため）

パスを設定後に確認
コマンドプロンプトのコマンドラインから
`gcc --version`
でパスが通っているのを確認する。
パスが通っているとWindows7にインストールが成功したことになる。

次にSublimeText3
SublimeText3が立ち上がっていたら再起動させる。

新しいファイルから

```cpp:test.cpp

# include <stdio.h>

int main()
{
    printf("hello,C++!\n");
    return 0;
}
```

でファイル名を
test.cpp
と拡張子をつけて保存。

sublimetext3からビルドして実行（ctrl+b）

実行結果
![sublimetext3cpp.png](https://qiita-image-store.s3.amazonaws.com/0/44761/e36b87ee-8f63-ba1c-6f8d-ed1caacff833.png)

Rubyとかと比べるとコンパイル＝＞実行しているので少しもたつきます。




---

ちなみにRubyだと同じ結果を1行で書くことが出来ます。

```rb:test.rb

p "hello, Ruby!\n"

```

![Ruby.png](https://qiita-image-store.s3.amazonaws.com/0/44761/50d8c32b-e566-89de-e902-371c43deb2fc.png)


---


# 更に便利にするプラグイン＆ツール

C++を使うために追加で入れたプラグインetc。
SublimeText3のプラグイン
* C++ Snippets
* SublimeLinter
* SublimeLinter-cppcheck
この３つのプラグインを入れる。

## SublimeLinter（文法チェックプラグイン）

SublimeText3でのC++文法チェックは外部ツールcppcheckを利用します。
（SublimeText3とcppcheckを連携させるプラグインがSublimeLinter-cppcheckであり、
SublimeLinter-cppcheckを管理するのがSublimeLinter、SublimeLinterとは文法チェックをするプラグインの管理ツールであり、様々な言語の文法チェックを各種言語専用のプラグインをそれぞれインストールすればできるようになる。）

![sublimelinter解説図.png](https://qiita-image-store.s3.amazonaws.com/0/44761/71248fb7-2378-b06e-fcec-d31516da01a4.png)

## CppCheck

CppCheckとは
C/C++用の静的解析ツールです。メモリリーク、アロケーション(確保と解放)のミスマッチ、バッファオーバーラン、さらに多くのチェックを行います。
[cppcheck 日本語情報トップページ - OSDN](https://osdn.jp/projects/sfnet_cppcheck/)

CppCheckをWindows7にインストールする。
[CppCheck - A tool for static C/C++ code analysis](http://cppcheck.sourceforge.net/)
からダウンロードしてインストールする。

インストール後にパスを通す。
パスの通し方はgccの時と同じ、環境変数にインストールした場所を追記する。

パスを通す
自分の場合は、
Y:\2016\cppcheck;
を環境変数にpathに追記した。

cppcheckの動作チェック
（参考）[cppcheckによる静的コード解析 - CREST’S WEBLOG (跡地)](http://d.hatena.ne.jp/Crest/20120109/1326097891)

```cpp:test_lint01.cpp

# include <iostream>

using namespace std;
static const int MaxLength = 16;

int main() {

  char *str = new char[MaxLength];//メモリ確保
  /*なんか操作する*/
  /*delete 忘れ */
  return 0;
}

```

実行結果
![test_lint01.png](https://qiita-image-store.s3.amazonaws.com/0/44761/6c639078-1710-87b5-d8f9-b44a6b0feeb0.png)

オレンジの三角が警告（ここではstrという変数を使っていない）。
赤い×がエラー（メモリーリークをしている）。

エラーの詳細を知りたいときは
tool=>SublimeLinter=>Show All Errors
でエラーor警告を選択。