こんにちは。

つい先日、Visual Studio 2017がリリースされましたので、今回は急遽予定を変更して、Visual Studio 2017 Communityによるビルド/デバッグ環境のインストールと設定方法を説明します。
また当講座ではCMakeも使いますので、WindowsへのCMakeのインストール方法も説明します。

1.Visual Studioの準備

手順としては簡単で下記3つです。

  1. ダウンロードする
  2. インストールする
  3. Visual Studioへサインインする

2.は、インストール・オプションにもよると思いますが、後述の設定の場合、1時間弱程待たされます。その間は他のことをしていても良いですので、ご飯でも食べてTVでも見ながらゆっくり待てる時に始めましょう。

また、サインインしない場合、30日間Visual Studio 2017 Communityを使えますが、その後使えなくなるようです。サインインしておくことをお勧めします。サインインしたくない場合は第3回目で説明しているubuntu上のgccとCode::Blocksを使うことをご検討下さい。

なお、サインインするためには「ユーザーを最も的確に表す職場や学校のアカウント」、もしくは、「マイクロソフト・アカウント」が必要です。
前者については、私も良く分かりませんので所属する職場や会社の管理者にご確認下さい。
後者については、無料でマイクロソフト・アカウントを取得できますので、取得してからインストール作業を初めて下さい。

1-1. Visual Studio 2017 Communityのダウンロード
1-1-1.マイクロソフトのサイトへ行きます。

1-1-2.ダウンロードをポイントするとドロップダウン・リストが表示されます。

一番上の「コミュニティ」をクリックして下さい。

1-1-3.ちょっと待つと画面が変わりますので、実行を押して下さい。インストールが始まります。

 

1-2. Visual Studio 2017 Communityのインストール

続けてインストールします。

1-2-1.直ぐにユーザアカウント制御がインストール許可を求めてくるので許可して下さい。

1-2-2.数秒でダイアログが表示されるので、続行をクリックして下さい。

1-2-3.オプションを設定します。

「C++によるデスクトップ開発」を選択し、「インストール」をクリックして下さい。

1-2-4.約1時間程、インストールが終わるのを待って下さい。

1-2-5.この画面が出たらインストール完了です。起動を押して、サインインに進みます。

 

1-3. サインイン

続けてVisual Studioへサインインします。

1-3-1.サインインの画面です。サインインポタンを押して進めます。

1-3-2.登録しておいたメール・アドレスを入力して下さい。

1-3-3.ちょっと待つと画面が変わりパスワードを聞かれますので入力して下さい。

1-3-4.そのまま2~3分程待って下さい。

1-3-6.Visual Studio 2017 Communityが起動します。

以上でVisual Studioのインストール完了です。Visual Studioを終了して下さい。

2.CMakeの準備

手順としては簡単で下記2つです。全部で数分で終わります。

  1. ダウンロードする
  2. インストールする
2-1. CMakeのダウンロード
2-1-1.CMakeのサイトへ行きます。
2-1-2.Downloadボタンを押します。

2-1-3.RC版がトップに出ていることが有ります。

RC版はまだ検証中のバージョンですので、下の方へスクロールし、安定版(サフィックスにrcがついていないもの)を選択することをお勧めします。

なお、CMakeは3.7.0以降であれば、Visual Studio 2017をサポートしています。ただし、3月10日現在の最新版である3.7.2は、まだVisual Studio 2017 RC版対応です。3.8.0の安定版がリリースされたら、そちらへ更新することもご検討下さい。

2-1-4.お使いのWindowsが64bit版ならcmake-x.x.x-win64x64.msi、32bit版ならcmake-x.x.x-win32-x86.msiを選択し、実行します。

ダウンロード後、インストールが始まります。

2-2. CMakeのインストール
2-2-1.CMakeのインストールを始めます。

2-2-2.ライセンスに合意できたら、合意チェックポックスにチェックを入れてNextを押して下さい。

2-2-3.CMakeにPATHを通すため、中央(ユーザ全員)、もしくは、一番下(カレント・ユーザのみ)を選択して下さい。

2-2-4.インストール先を選択して下さい。

2-2-5.インストールを始めます。

2-2-6.ユーザアカウント制御がインストール許可を求めてくるので許可して下さい。

2-2-7.インストール完了を1分程待って下さい。

2-2-8.この画面が表示されたらインストール完了です。

3.ビルドできることの確認

正常にインストールできていることを確認するため、恒例のHallo, World!!を表示するプログラムをビルドして走らせます。

3-1.ソースとCMakeLists.txt作成

まず、C++言語のソースを作って下さい。
hello.cpp

#include <iostream>

int main()
{
    std::cout << "Hello, World!!\n";
    return 0;
}

次に、CMakeのプロジェクト生成用のファイルを作って下さい。このファイルは名前が決まっています。常にCMakeLists.txtです。

project(hello)
if(MSVC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /EHsc")
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11")
endif()
add_executable(hello hello.cpp)
  • project文
    ここでCMakeプロジェクト名を指定します。
    プロジェクト名にはあまり深い意味はないようです。Visual Studioの場合はソリューション名になります。
    しかし、project文自体はかなり重要な役割があります。これはシステムに搭載されているコンパイラ(処理系)を確認(コンパイル動作なども行います)し、ビルド用のパラメータのデフォルト値を決定します。CMakeを使う場合のおまじないのような文ですが、非常に高度な処理が行われます。

  • CMAKE_CXX_FLAGS
    警告をできるだけ出力する設定です。Visual C++とgccではオプションの与え方が異なるのでif()文で分岐しています。
    gcc用にはC++11準拠でビルドするよう-std=c++11オプションを指定しています。

  • add_executable(hello hello.cpp)
    アプリケーション・プログラムの生成を指定しています。
    “hello”は実行形式のファイル名に使われます。Visual Studioの場合はプロジェクト名にもなります。
    hello.cppはビルドに含めたいソース・ファイルの指定です。分割コンパイルする時は複数のソース・ファイルを指定できます。
    ソース・ファイルはhello.cppで実行形式のファイル名がhelloです。(Windowsの場合は拡張子.exeが付加されます。)

3-2.ビルドと実行
3-2-1.ビルド・プロジェクトの生成

次に従来通りの使い方もできますので、CMakeでVisual Studioのプロジェクトを生成する方法を説明します。

コマンド・プロンプトを起動し、3-1の2つのファイルを保存したフォルダへ移動して下さい。
そして、下記コマンドを実行して下さい。これでビルド用のプロジェクトが生成されます。

 > mkdir build
 > cd build
 > cmake -G "Visual Studio 15 2017" ..

最後のcmakeコマンドで、Visual Studioのソリューション・ファイル群が生成されます。
これにより次のように表示されます。

最後の”– Build files have been written to: C:/cpp-school1/01.hello/build”にてソリューション・ファイルが出力されています。
これが出ていない時は、CMakeLists.txt、もしくは、ソースが不足しているなど、何か問題があります。CMakeのエラー・メッセージをよく見ると何が原因か分かります。

CMakeの-Gオプションについて
-Gオプションは省略することも可能です。その時、CMakeがコンパイラを自動的に選択します。私の環境はVisual Studioの2013, 2015, 2017とCMake 3.7.2をインストールしているのですが、2017年3月10日現在は-Gを省略すると2015が選択されます。CMake 3.7.2の対応が2017 RC版だからかも知れません。

3-2-2.コマンド・プロンプトによるビルドと実行

このままコマンド・プロンプトでビルドし実行できます。

> cmake --build .
> Debug\hello.exe

cmake –buildコマンドは、Visual Studioのソリューションを使ってコマンド・プロンプトでビルドします。
–config Releaseにてリリース・モードのビルドを指定しています。–config Debugとすればデバッグ・モードでビルドします。
実行形式ファイルは、Releaseフォルダの下に生成されますので、次のコマンドで実行されます。
以上により、次のように表示されます。

3-2-3.Visual Studioによるビルドと実行

Visual Studioでデバックすることもできます。CMakeが生成したhello.slnをダブルクリックして下さい。
Visual Studio Community 2017が起動します。

まず最初にhelloをデバッグ対象に設定します。それにはソリューション エクスプローラに表示されている hello を右クリックし、「スタートアップ プロジェクトに設定(A)」をクリックして下さい。

そして、「ローカル Windowsデバッガー」をクリックするとビルドして実行されます。
しかし、折角実行した時のウィンドウが直ぐに閉じてしまうため、結果が見えません。
Ctrl + F5キーを押せば、プログラムが起動しプログラム終了後ウィンドウが残るので結果を確認できます。(なお、このモードはデバッガを起動していないためブレーク・ポイントで停止しません。)

3-2-4.Visual StudioのCMake連携機能によるビルドと実行

Visual Studio 2017はCMakeと連携できるようになりました。これは結構便利と思いますので、こちらの使い方も説明します。

1)Visual Studio Community 2017を起動して下さい。

そして、ファイル(F) → 開く → フォルダー(D)をクリックして下さい。フォルダー選択ダイアログが表示されます。

2)フォルダー選択ダイアログで3-1のファイルがあるフォルダを選択して下さい。

3)これにより、自動的にCMakeのプロジェクト生成コマンドが実行されます。

青枠で囲った部分に3-2-1と同様な表示が出ます。

4)スタートアップ・アイテムを選択します。

5)ブレーク・ポイントを設定します。

CMake連携機能で生成したプロジェクトの場合、Ctrl+F5で起動しても実行終了時一旦停止せず、ウィンドウが閉じてしまいます。(そのうちに停止するようになるのではないかと思います。)
そこで、プログラムの最後にブレーク・ポイントを張ってウィンドウが直ぐに閉じないようにします。
hello.cppをダブル・クリックしてソースを表示し、ブレーク・ポイントを設定して下さい。

6)コンパイルして実行します。

緑の三角ボタンを押して下さい。コンパイルされてプログラムが起動し、ブレーク・ポイントで一旦停止します。
この時、コマンド・プロンプトのような画面が出てきて”Hello, World!!”と表示されます。

最後にもう一度「緑の三角ボタン(継続)」押すとプログラムが最後まで実行され、黒いウィンドウが閉じます。

ステップ実行等のデバッグ方法はVisual Studio 2015からあまり変化していないようですので、第4回目の「3-3.Visual Studioでビルドとデバッグ実行」を参考にして下さい。

7)CMake連携おまけ。

右側のソリューション エクスプローラでCMakeLists.txtを右クリックするとメニューが出てきます。そこにある「キャッシュ」は、CMakeが生成する各種プロジェクト・ファイルのことです。

メニュー 意味
キャッシュを生成 CMake -Gコマンドを実行します
キャッシュをクリーン… CMakeが生成したプロジェクト・ファイルを削除します
キャッシュを表示 CMakeCache.txtを表示します
キャッシュ フォルダーを開く CMakeが生成したプロジェクト・ファイルがあるフォルダを開きます
4.まとめ

ついこの間Visual Studio 2015へアップデートしたばかりのような気がしていたのですが、もう2017がリリースされたことにビックリしています。歳を取ると時が経つのが速いといいますが、本当に速いです。

さて、前回お約束していた組み合わせ型(ユーザ定義型)の解説を次回こそは開始します。CMake 3.8.0が正式リリースされるかも知れませんが、それに惑わされずにC++の解説を行いたいと思います。
それでは次回をお楽しみに。