C++をローカルにインストールする

自分のマシンでExercismの演習を解くために、C++をローカルにインストールする方法を学びます。


前提条件

C++のトラックでは、次のソフトウェアがシステムにインストールされている必要があります。

  • モダンなC++14コンパイラー
  • CMakeというクロスプラットフォームなビルドシステム

テストにはCatch2を使います。これはヘッダーオンリーのライブラリーで、各演習に同梱されています。

この依存関係の組み合わせはC++プロジェクトではごく一般的なので、セットアップで問題が起きても、役に立つ情報がオンラインにたくさん見つかります。

MicrosoftのVisual Studio、AppleのXcode、JetBrainsのCLionなど、多くのIDEはコンパイラーとCMakeをまとめて同梱しているので、IDEをインストールするだけで済むはずです。

モダンなC++14コンパイラー

このトラックでは、2014年にリリースされたC++14に対応したコンパイラーが必要です。ここ数年でリリースされた主要なコンパイラーはどれも対応しているはずなので、それほど古くなければ問題ありません。具体的には、GCCのバージョン7以降、Clangのバージョン6以降、またはVisual Studio 2017以降です。

CMake

CMakeは、ネイティブなビルドシステム(make、Visual Studio、Xcodeなど)向けのビルドスクリプトを生成する、オープンソースのクロスプラットフォームなビルドシステムです。ExercismのC++トラックではCMakeを使い、すぐに使えるビルド環境を用意しています。このビルドでは次のことを行います。

  • テストをコンパイルします
  • 解答をコンパイルします
  • テストの実行ファイルをリンクします
  • ビルドのたびにテストを自動で実行します
  • テストが1つでも失敗するとビルドを失敗させます

CMakeを使うことで、ExercismはVisual StudioやXcodeのような統合開発環境向けのプロジェクトファイルを生成できる、クロスプラットフォームなビルドスクリプトを提供できます。これにより、演習ごとにビルドを設定する手間を気にせず、問題に集中できます。

ポータブルなビルドを用意するのは簡単ではなく、さまざまな種類のシステムへのアクセスが必要です。用意されているCMakeのレシピで問題が起きたら、問題を報告してください。CMakeのサポートを改善していきます。

用意されているビルドレシピを使うには、CMake 3.5.1以降が必要です。

Windows

Windowsでは、Visual Studio Communityを入手できます。無料でダウンロードでき、Visual Studio IDEと最新バージョンのMicrosoft Visual C++コンパイラーが手に入ります。

  1. こちらの手順に従ってCMakeをセットアップします。
  2. Exercism CLIツールを使って演習をダウンロードします。
  3. Visual Studio 2017以降を開きます(上記のリンクの説明に従って、CMake用のVisual C++ツールをインストールしておいてください)。
  4. VSで演習のフォルダーを開きます。
  5. 「Build->Build the solution」を実行します。テストはビルドと一緒に実行され、出力はビルドウィンドウに表示されます。テストはビルド中に実行されるので、テストが1つでも失敗するとVSはビルド失敗と表示し、テスト失敗のメッセージはビルド出力ウィンドウに表示されます。

JetBrainsのCLionなど、他のIDEでも同様に使えるはずです。

WindowsでのBoostのインストール

meetup演習とgigasecond演習は、Boostライブラリーに依存しています。セットアップの手順は次のとおりです。

  1. BoostのWindows用ビルド済みライブラリーをダウンロードします。
    • 演習にはBoost 1.58以降が必要です。
    • MSVCのバージョンは、Visual Studio Installerで「Modify」をクリックすると確認できます。
  2. ライブラリーをローカルのフォルダーに展開します。
  3. 環境変数BOOST_ROOTに、Boostライブラリーをインストールしたフォルダーを設定します。
  4. この作業の間にVisual Studioを開いていた場合は、閉じてください。BOOST_ROOTの値が確実に読み込まれるようにするためです。
  5. Visual Studioを起動し、gigasecondまたはmeetup演習が入っているフォルダーを開きます。
  6. 「Startup Item」はgigasecond.exeまたはmeetup.exeになっているはずで、他の演習と同様に、gigasecond_test.cppまたはmeetup_test.cppに、未実装の項目を実装するよう求めるビルドエラーが出るはずです。

Linux

最近のLinuxディストリビューションのリリースには、どれも互換性のあるC++14コンパイラーが含まれているので、パッケージマネージャーからインストールできるはずです。サポートしているのは、Ubuntu LTS 18.04でデフォルトでインストールされるバージョンです。

たとえばUbuntuでは、次のコマンドでgccをインストールします。

$ sudo apt-get install gcc
$ gcc --version

古いディストリビューションを使っている場合、C++14に対応したコンパイラーがないかもしれません。その場合は、そのディストリビューションで最小限のコンパイラーバージョンをインストールする方法を調べる必要があります。

MacOS

MacOSでは、Homebrewを使ってbrew install gccでGCCをインストールできます。